2

ユーザーがアンドロイドのキーボードの戻るボタンを押すと、アクティビティが閉じて (プレビュー アクティビティが表示されます)、アプリに別のことをさせたいと思っています。
ここの指示に従ってやろうとしたとき: Androidにデフォルトのバックキー(デバイス上)リスナーはありますか? 戻るボタンを押すと、アクティビティが閉じて再び開きます。戻るボタンをもう一度押すと、アクティビティが閉じられ、プレビュー アクティビティが開かれます。
理由を知っている人はいますか?誰かがこれについて別のアイデアを持っていますか?

これは私が試したコードの一部です: オプション 1:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if(keyCode == KeyEvent.KEYCODE_BACK){
        //Show the dialog and get the response
        ArrayList<User> lstChosenContacts = new ArrayList<User>();
        for(int i = 0; i < this.lstContacts.size(); i++) {
            if(this.lstContacts.get(i).getIsChecked()) {
                lstChosenContacts.add(this.lstContacts.get(i).getUserContact());
            }
        }
        Intent data = new Intent();
        data.putExtra("lstChosenContacts", lstChosenContacts);
     setResult(RESULT_OK,data);

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

オプション 2:

@Override
public void onBackPressed() {
    ArrayList<User> lstChosenContacts = new ArrayList<User>();
    for(int i = 0; i < this.lstContacts.size(); i++) {
        if(this.lstContacts.get(i).getIsChecked()) {
            lstChosenContacts.add(this.lstContacts.get(i).getUserContact());
        }
    }
    Intent data = new Intent();
    data.putExtra("lstChosenContacts", lstChosenContacts);
     setResult(RESULT_OK,data);
    super.onBackPressed();
}

ありがとう!

4

1 に答える 1

0

これを試して:

public boolean dispatchKeyEvent(KeyEvent event) {
            int action = event.getAction();
            int keyCode = event.getKeyCode();

            switch (keyCode) {
            case KeyEvent.KEYCODE_BACK:
                if (action == KeyEvent.ACTION_DOWN ){ 
            //Do something in the back button       
            Log.d("BackButton","back");
                }
                return true;
            default:
                return super.dispatchKeyEvent(event);
              }
          }
于 2013-02-21T19:51:38.163 に答える