0

我是 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();
            }

err.. glb.getChoice 如果值为零,则表示视图包含主菜单。我的问题是,如果我单击“pagsasanay”按钮(在主菜单内),我可以转到 Pagsasanay 菜单,并且 glb 类中的选项将设置为 1,但到达那里后,event.getX() 值仍然存在,因此单击另一个与“pagsasanay”按钮坐标完全相同的按钮

4

1 回答 1

0

您用作按钮的这些视图应在 xml 中设置 onClick 属性。onClick 属性标识了单击视图时要调用的方法,在该方法中,您可以决定要采取的操作、提供新菜单或其他操作。如果您更面向 Java,则可以为每个视图编写 onClickListeners 代码,但恕我直言,这只是要编写更多代码。另一方面,有时对侦听器进行编码是有意义的,这取决于您在做什么。到目前为止,从我对您的代码的了解来看,请使用 xml 定义的 onClick 属性。

于 2012-09-03T23:37:17.950 回答