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

エラー.. 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 に答える