6

こんにちは、グーグルで検索した後、ここに来て助けを求めます。ユーザーがデバイスの戻るボタンを押したときに戻るには、次のメソッドを使用します。

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {


        Log.i("===BACK BUTTON PRESSED===", "BACK BUTTON");

        return true;
    } else {
        Log.i("===ELSE BACK BUTTON PRESSED===", "ELSE BACK BUTTON");

        return super.onKeyDown(keyCode, event);
    }
}

しかし、logcat はログ メッセージを表示しません。

W/KeyCharacterMap(517): No keyboard for id 0  

W/KeyCharacterMap(517): Using default keymap: /system/usr/keychars/qwerty.kcm.bin これを見つけるのを手伝ってください。

編集された質問:

これが私のクラス全体です。

public class Dreams_Reminder_detail_screen extends Activity {   

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        moveTaskToBack(true);
        GroupDreams.group.back();
        return true;
    }
    return super.onKeyDown(keyCode, event);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.dreams_reminder_details_screen);        
}

}

4

6 に答える 6

8

onBackPressed()関数をオーバーライドして、そこにロジックを実装できます。

詳細については、この Android ブログ投稿「Back and other hard keys: three stories」を参照してください。

おそらくGroupDreamsのonKeyDown関数をオーバーライドできます。

于 2012-08-06T05:22:07.497 に答える
2

このリンクを試してください: [戻る] ボタンをオーバーライドして、ホーム ボタンのように動作するようにします

    @Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        moveTaskToBack(true);
        return true;
    }
    return super.onKeyDown(keyCode, event);
}
于 2012-08-06T05:40:02.963 に答える
1

次のコードを試してみてください。

@Override
    public boolean dispatchKeyEvent(KeyEvent event) {
        if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) 
        {
             }
         }
于 2012-08-06T05:25:35.087 に答える
1

この方法で戻るボタンイベントをトレースできます:-

@Override
public void onBackPressed() {
    super.onBackPressed();

     //Do the Logics Here 
}
于 2012-08-06T05:17:44.810 に答える
0

スーパーメソッドをelse{}に書きましたが、それは間違っていました。このようにコードを編集します

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK) {


            Log.i("===BACK BUTTON PRESSED===", "BACK BUTTON");

            return true;
        } else {
            Log.i("===ELSE BACK BUTTON PRESSED===", "ELSE BACK BUTTON");


        }
return super.onKeyDown(keyCode, event);

}
于 2012-08-06T05:32:55.557 に答える