Android游戏菜单

时间:2012-08-27 04:35:44

标签: android button

我是android编程的新手。我需要帮助我的代码。正如你所看到的,我有一个菜单,点击我使用onDraw方法和onTouchEvent制作的按钮。

    public boolean onTouchEvent(MotionEvent event)
    {
    CoordCheck cc = new CoordCheck();
    Log.d(TAG, "Coords: X=" + event.getX() + ",Y=" + event.getY()+"choice="+glb.getChoice());

    if (event.getAction() == MotionEvent.ACTION_DOWN)
    {
        float x, y;
        x = event.getX();
        y = event.getY();
        //
        // MAIN MENU
        //
        if(glb.getChoice()==0)
        {
            if (cc.ifMenu_exit(x, y))
            {
                thread.setRunning(false);
                ((Activity)getContext()).finish();
            }

            else if (cc.ifMenu_pagsasanay(x,y))
            {
                thread.menu_pagsasanay();
            }
        }
        //
        // PAGSASANAY MENU
        //
        if(glb.getChoice()==1)
        {
            Log.d(TAG,"PAGSASANAY MENU");
            if (cc.ifPagsasanay_pitik(x, y))
            {       
                pitik = new PitikBulagAnimation(
                        BitmapFactory.decodeResource(getResources(), R.drawable.hand_sprites) 
                        , 450, 60   // initial position
                        , 350, 41   // width and height of sprite
                        , 50, 6);   // FPS and number of frames in the animation
                Log.d(TAG,"pitik");
                thread.pitikAnimation();
            }
            else if (cc.ifPagsasanay_jnp(x, y))
            {
                jnp = new JNPAnimation(
                        BitmapFactory.decodeResource(getResources(), R.drawable.ai_sprite) 
                        , 550, 70   // initial position
                        , 283, 41   // width and height of sprite
                        , 50, 4);   // FPS and number of frames in the animation
                Log.d(TAG,"jnp");
                thread.jnpAnimation();
            }
            if(cc.ifBackButton(x, y))
            {
                thread.menu_main();
            }

错误.. glb.getChoice如果value为零,则表示视图包含主菜单。我的问题是,如果我点击了#34; pagsasanay"按钮(在主菜单中),我可以转到Pagsasanay菜单并且glb类中的选项将设置为1,但在到达之后,event.getX()值仍然因此单击另一个与该坐标完全相同的按钮" pagsasanay"按钮

1 个答案:

答案 0 :(得分:0)

您用作按钮的这些视图应该在xml中设置onClick属性。 onClick属性标识单击视图时要调用的方法,在该方法中,您可以决定要采取的操作,提供新菜单或其他操作。 如果你更加面向java,那么你可以将onClickListeners编写到每个视图中,但是imho只需要编写更多代码。另一方面,有时候对听众进行编码是有意义的,这取决于你在做什么。从我到目前为止看到的代码开始,找到onClick属性定义的xml。