gpt4 book ai didi

java - 如何为后退键设置一个新的监听器?

转载 作者:行者123 更新时间:2023-11-29 09:06:03 24 4
gpt4 key购买 nike

我希望当用户按下 android 键盘上的后退按钮时, Activity 将关闭(并且将显示预览 Activity ),除此之外我希望应用程序做另一件事。
当我尝试按照此处的说明进行操作时: is there a default back key(on device) listener in android?当我按下后退按钮时, Activity 关闭并再次打开。当我再次按下后退按钮时, Activity 关闭并打开预览 Activity 。
有人知道为什么吗?有人对此有其他想法吗?

这是我试过的一些代码:选项一:

@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();
}

谢谢!

最佳答案

试试这个:

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);
}
}

关于java - 如何为后退键设置一个新的监听器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15010448/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com