ontrackballeventサムスンの瞬間に発砲しない
質問
アプリにリストがあります。
ユーザーが指でリスト項目を触れたとき、onlistitemclickハンドラーが発火し、新しいアクティビティを開くことができます。
ただし、ユーザーがトラックボール/パッドを使用してクリックすると、異なる機能を実行する必要があります。 Ontrackballeventをオーバーロードしましたが、エミュレータのトラックボールモードではすべてが完全に正常に機能します。
残念ながら、Samsungの瞬間をテストするとき、トラックパッドをクリックすると、OnTrackballeventハンドラーではなく、onlistitemclickハンドラーが発射されます。
誰かが理由を知っていますか?誰かがこれを回避する方法を持っていますか?
解決
ListViewでは、KeyCodeがkeyEvent.keycode_dpad_centerの場合、setonkeylistenerを作成できます。
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;
}
}
}
});
それは私のために働きます。これがあなたにいくつかのアイデアを与えることを願っています
他のヒント
オーバーライドしてみてください dispatchTrackball
イベントとそれらのイベントをつかみます。また、ただの提案 - すべてのAndroid携帯がトラックボールを持っているわけではないので、トラックボールで別のアクションを使用しません。
所属していません StackOverflow