1

アプリにリストがあります。

ユーザーが指でリストアイテムに触れると、onListItemClickハンドラーが起動し、新しいアクティビティを開きます。

ただし、ユーザーがトラックボール/パッドを使用してクリックする場合、いくつかの異なる機能を実行したいと思います。onTrackballEventを無効にしましたが、エミュレータのトラックボールモードではすべてが完全に正常に機能します。

残念ながら、Samsung Momentでテストする場合、トラックパッドをクリックすると、onTrackballEventハンドラーではなく、onListItemClickハンドラーが起動します。

誰かが理由を知っていますか?誰かがこれを回避する方法がありますか?

4

2 に答える 2

1

リストビューでは、setOnKeyListenerを使用して、キーコードがKeyEvent.KEYCODE_DPAD_CENTERの場合にコーディングできますか

listview.setOnKeyListener(new OnKeyListener() {

            public boolean onKey(View v, int keyCode, KeyEvent event) {
               switch(keyCode){
                 case KeyEvent.KEYCODE_DPAD_CENTER:
                    if(event.getAction()==KeyEvent.ACTION_UP){ //to do it only when key is released 
                   // do the code while trackball/pad is clicked
                    }
                   return true;
                 default:
                    return false;
                 }
              }
         }
});

それは私のために働きます。これがあなたにいくつかのアイデアを与えることを願っています

于 2010-11-23T08:47:01.723 に答える
-1

イベントをオーバーライドして、dispatchTrackballそれらのイベントを取得してみてください。また、単なる提案です。すべてのAndroidスマートフォンにトラックボールがあるわけではないため、トラックボールで別のアクションを使用することはありません。

于 2010-11-21T07:03:55.583 に答える