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 android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to