我希望当用户按下Android键盘上的后退按钮时,活动将关闭(并显示预览活动),然后我希望应用程序执行其他操作。
当我试图通过这里的说明:
is there a default back key(on device) listener in android?当我按下后退按钮时,活动将关闭并再次打开。当我再次按下后退按钮时,活动关闭,预览活动开始
谁知道为什么?有没有人对此有另一个想法?
这是我试过的一些代码: 方案一:
@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();
}
谢谢!
答案 0 :(得分: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);
}
}