Hi!
I am programming a game. I have some layouts:
the Layout screenmain has these ImageButtons:
private ImageButton buttonstart;
private ImageButton buttonoptions;
private ImageButton buttonhighscore;
private ImageButton buttoninfo;
which will open the layouts.
all these layouts have just an ImageButton "buttonback".
I can click through all my menus but sometimes (to me, it seems like
random), my program crashes when I click a button and I get an
AndroidRuntimeException. What can be the error?
Here is the error-message:
Leonard Frog [Android Application]
DalvikVM[localhost:8614]
Thread [<3> main] (Suspended (exception
AndroidRuntimeException))
MessageQueue.enqueueMessage(Message, long) line: 173
LeonardFrog$1(Handler).sendMessageAtTime(Message, long)
line: 457
LeonardFrog$1(Handler).sendMessageDelayed(Message,
long) line: 430
LeonardFrog$1(Handler).sendMessage(Message) line: 367
LeonardFrog$4.onClick(View) line: 119
ImageButton(View).performClick() line: 2179
ImageButton(View).onTouchEvent(MotionEvent) line: 3828
ImageButton(View).dispatchTouchEvent(MotionEvent) line:
3368
AbsoluteLayout(ViewGroup).dispatchTouchEvent(MotionEvent) line:
863
FrameLayout(ViewGroup).dispatchTouchEvent(MotionEvent)
line: 863
FrameLayout(ViewGroup).dispatchTouchEvent(MotionEvent)
line: 863
PhoneWindow$DecorView(ViewGroup).dispatchTouchEvent(MotionEvent)
line: 863
PhoneWindow$DecorView.superDispatchTouchEvent(MotionEvent) line:
1707
PhoneWindow.superDispatchTouchEvent(MotionEvent) line:
1197
LeonardFrog(Activity).dispatchTouchEvent(MotionEvent)
line: 1993
PhoneWindow$DecorView.dispatchTouchEvent(MotionEvent)
line: 1691
ViewRoot.handleMessage(Message) line: 1525
ViewRoot(Handler).dispatchMessage(Message) line: 99
Looper.loop() line: 123
ActivityThread.main(String[]) line: 3948
Method.invokeNative(Object, Object[], Class, Class[],
Class, int,
boolean) line: not available [native method]
Method.invoke(Object, Object...) line: 521
ZygoteInit$MethodAndArgsCaller.run() line: 782
ZygoteInit.main(String[]) line: 540
NativeStart.main(String[]) line: not available [native
method]
Thread [<13> Binder Thread #2] (Running)
Thread [<11> Binder Thread #1] (Running)
and here is my main class:
package digle.de.LeonardFrog;
import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.DisplayMetrics;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.view.View.OnClickListener;
import android.widget.ImageButton;
public class LeonardFrog extends Activity {
private ImageButton buttonstart;
private ImageButton buttonoptions;
private ImageButton buttonhighscore;
private ImageButton buttoninfo;
private ImageButton buttonback;
private Game game;
Message msg;
int handler_lastarg=-1;
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
if (handler_lastarg!=msg.arg1) //I put this line here
to be sure
that the error doesn't come becaues I doubleclick on a button without
knowing and two handlers maybe would interfere? But the error comes
anyway.
{
switch (msg.arg1)
{
case 1:
game.start();
setContentView(game.getPanel());
break;
case 2:
screenoptions();
break;
case 3:
screenhighscore();
break;
case 4:
screeninfo();
break;
case 5:
screenmain();
break;
}
handler_lastarg=msg.arg1;
}
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
// if ((new Date()).before(new Date(2010,1,10))) System.exit(0);
game = new Game(this);
msg = new Message();
//Displaygrösse herausfinden
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
Global.screen_width = dm.widthPixels;
Global.screen_height = dm.heightPixels;
Global.screen_width_factor = 320/Global.screen_width;
Global.screen_height_factor = 480/dm.heightPixels;
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
this.getWindow().setFlags
(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN );
// //Sound starten
MediaPlayer mp = MediaPlayer.create(this,
R.raw.leonardkleiner96);
mp.setLooping(true);
mp.start();
screenmain();
}
private void screenmain()
{
setContentView(R.layout.screenmain);
buttonstart = (ImageButton) findViewById(R.id.buttonstart);
buttonoptions = (ImageButton) findViewById(R.id.buttonoptions);
buttonhighscore = (ImageButton)
findViewById(R.id.buttonhighscore);
buttoninfo = (ImageButton) findViewById(R.id.buttoninfo);
buttonstart.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
msg.arg1 = 1;
handler.sendMessage(msg);
}
});
buttonoptions.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
msg.arg1 = 2;
handler.sendMessage(msg);
}
});
buttonhighscore.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
msg.arg1 = 3;
handler.sendMessage(msg);
}
});
buttoninfo.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
msg.arg1 = 4;
handler.sendMessage(msg);
}
});
}
private void screenoptions()
{
setContentView(R.layout.screenoptions);
buttonback = (ImageButton) findViewById(R.id.buttonback);
buttonback.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
msg.arg1 = 5;
handler.sendMessage(msg);
}
});
//Game-Sound
//Game-Music
}
private void screenhighscore()
{
setContentView(R.layout.screenhighscore);
buttonback = (ImageButton) findViewById(R.id.buttonback);
buttonback.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
msg.arg1 = 5;
handler.sendMessage(msg);
}
});
}
private void screeninfo()
{
setContentView(R.layout.screeninfo);
buttonback = (ImageButton) findViewById(R.id.buttonback);
buttonback.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
msg.arg1 = 5;
handler.sendMessage(msg);
}
});
}
@Override
public void onStop()
{
System.exit(0);
}
}
--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en