Android 返回键失效? 修改代码解决返回键问题
非常抱歉给你带来了困扰。我注意到在修改'onKeyDown()'方法时,我忽略了调用父类的'onKeyDown()'方法来处理其他按键事件的逻辑。
请使用以下修改后的代码,它会正确处理返回按键事件并调用父类的'onKeyDown()'方法:
public class EditActivity extends BaseActivity {
EditText et;
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_HOME) {
return true;
} else if (keyCode == KeyEvent.KEYCODE_BACK) {
autoSetMessage();
if (et.getText().toString().length() == 0) {
intent.putExtra("mode", -1); // nothing new happens
} else {
intent.putExtra("mode", 1); // edit the content
intent.putExtra("content", et.getText().toString());
intent.putExtra("time", dateToStr());
intent.putExtra("id", id);
intent.putExtra("tag", tag);
}
setResult(RESULT_OK, intent);
finish();
return true;
}
return super.onKeyDown(keyCode, event);
}
public String dateToStr() {
Date date = new Date();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return simpleDateFormat.format(date);
}
}
这次的修改会在处理返回按键事件后调用'setResult()'方法设置返回结果,并调用'finish()'方法关闭当前活动。同时,如果按下的按键不是'HOME'键或'BACK'键,会调用父类的'onKeyDown()'方法处理其他按键事件。
希望这次的修改能够解决问题。如果还有其他问题,请随时告诉我。
原文地址: https://www.cveoy.top/t/topic/cpWd 著作权归作者所有。请勿转载和采集!