非常抱歉给你带来了困扰。我注意到在修改'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()'方法处理其他按键事件。

希望这次的修改能够解决问题。如果还有其他问题,请随时告诉我。

Android 返回键失效? 修改代码解决返回键问题

原文地址: https://www.cveoy.top/t/topic/cpWd 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录