Note that there are some explanatory texts on larger screens.

plurals
  1. POI want to change from an xml layout to surfaceview using java
    primarykey
    data
    text
    <p>OK so I'm using xml to set this menu which is supported by the following java code</p> <pre><code>package starting.rt; import java.util.List; import java.util.Random; import android.app.Activity; import android.content.Intent; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.net.Uri; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; public class Menu extends Activity implements OnClickListener{ View.OnTouchListener gestureListener; TextView display; Button begin; Button random; Button game; TextView counter; Button next; Button previous; Button moreapps; Button rate; Random myRandom; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(starting.rt.R.layout.menu); begin = (Button) findViewById(starting.rt.R.id.Begin); random = (Button) findViewById(starting.rt.R.id.Random); display = (TextView) findViewById(starting.rt.R.id.tvResults); counter = (TextView) findViewById(starting.rt.R.id.tvCounter); next = (Button) findViewById(starting.rt.R.id.Next); previous = (Button) findViewById(starting.rt.R.id.Previous); moreapps = (Button)findViewById(R.id.More); rate = (Button) findViewById(R.id.rate); game = (Button) findViewById(R.id.game); // display.setOnTouchListener(this.gestureListener); begin.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { Intent openStartingPoint = new Intent("starting.rt.RelationshipTipsActivity"); startActivity(openStartingPoint); }}); moreapps.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { Intent goToMarket; goToMarket = new Intent(Intent.ACTION_VIEW, Uri.parse("market://search?q=pub:\"Wompa\"")); startActivity(goToMarket); }}); game.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { Intent openStartingPoint = new Intent("starting.rt.GameView"); startActivity(openStartingPoint); }}); rate.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { Intent i = new Intent(Intent.ACTION_VIEW); i.setData(Uri.parse("market://details?id=" + getPackageName())); startActivity(i); }});} public void onClick(View v) { // TODO Auto-generated method stub } } </code></pre> <p>Now what's supposed to be happening is when they click on the game which starts a new java class called GameView it crashes on clicked. Every other button works.</p> <p>This is the code from GameView</p> <pre><code>package starting.rt; import java.util.ArrayList; import java.util.List; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Color; import android.view.MotionEvent; import android.view.SurfaceHolder; import android.view.SurfaceView; public class GameView extends SurfaceView { private GameLoopThread gameLoopThread; private List&lt;Sprite&gt; sprites = new ArrayList&lt;Sprite&gt;(); private List&lt;TempSprite&gt; temps = new ArrayList&lt;TempSprite&gt;(); private long lastClick; private Bitmap bmpBlood; public GameView(Context context) { super(context); gameLoopThread = new GameLoopThread(this); getHolder().addCallback(new SurfaceHolder.Callback() { public void surfaceDestroyed(SurfaceHolder holder) { boolean retry = true; gameLoopThread.setRunning(false); while (retry) { try { gameLoopThread.join(); retry = false; } catch (InterruptedException e) {} } } public void surfaceCreated(SurfaceHolder holder) { createSprites(); gameLoopThread.setRunning(true); gameLoopThread.start(); } public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { } }); bmpBlood = BitmapFactory.decodeResource(getResources(), R.drawable.blood1); } private void createSprites() { sprites.add(createSprite(R.drawable.bad1)); // sprites.add(createSprite(R.drawable.bad2)); // sprites.add(createSprite(R.drawable.bad3)); // sprites.add(createSprite(R.drawable.bad4)); // sprites.add(createSprite(R.drawable.bad5)); // sprites.add(createSprite(R.drawable.bad6)); // sprites.add(createSprite(R.drawable.good1)); // sprites.add(createSprite(R.drawable.good2)); // sprites.add(createSprite(R.drawable.good3)); // sprites.add(createSprite(R.drawable.good4)); // sprites.add(createSprite(R.drawable.good5)); // sprites.add(createSprite(R.drawable.good6)); } private Sprite createSprite(int resouce) { Bitmap bmp = BitmapFactory.decodeResource(getResources(), resouce); return new Sprite(this, bmp); } @Override protected void onDraw(Canvas canvas) { canvas.drawColor(Color.BLACK); for (int i = temps.size() - 1; i &gt;= 0; i--) { temps.get(i).onDraw(canvas); } for (Sprite sprite : sprites) { sprite.onDraw(canvas); } } @Override public boolean onTouchEvent(MotionEvent event) { if (System.currentTimeMillis() - lastClick &gt; 300) { lastClick = System.currentTimeMillis(); float x = event.getX(); float y = event.getY(); synchronized (getHolder()) { for (int i = sprites.size() - 1; i &gt;= 0; i--) { Sprite sprite = sprites.get(i); if (sprite.isCollition(x, y)) { sprites.remove(sprite); temps.add(new TempSprite(temps, this, x, y, bmpBlood)); break; } } } } return true; } } </code></pre> <p>The GameView calls a few other classes for things part of the game but it crashes before it can start. I think it's crashing because it's switching from xml layout to the java surfaceview. Help would be appreciated :) Thanks!</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload