gpt4 book ai didi

android - 单击 ActionBar 中的后退按钮时不会调用 onActivityResult

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:38:45 26 4
gpt4 key购买 nike

这是我的问题:

  1. 创建一个 MainActivity。添加一个将启动另一个 Activity SecondActivity 的按钮。

            Intent i = new Intent(getActivity(),SecondActivity.class);
    startActivityForResult(i,0);
  2. 在 SecondActivity 中,我捕获后退按钮单击事件并添加一个按钮以返回到第一个 Activity。

    单击操作栏中的后退按钮时:

@覆盖

public boolean onOptionsItemSelected(MenuItem item) {

switch (item.getItemId()) {
case android.R.id.home:
// back button
Intent resultIntent = new Intent();
// TODO Add extras or a data URI to this intent as appropriate.
setResult(Activity.RESULT_OK, resultIntent);
//finish();
return false;

}
return super.onOptionsItemSelected(item);
}

单击 Activity 中的按钮时:

Button btn = (Button)this.findViewById(R.id.button2);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent resultIntent = new Intent();
// TODO Add extras or a data URI to this intent as appropriate.
setResult(Activity.RESULT_OK, resultIntent);
finish();
}
});

MainActivity中的onActivityResult是当我点击SecondActivity里面的按钮时调用的,但是如果我点击SecondActivity的Actionbar中的后退按钮,它就不会被调用。谁能告诉我为什么?谢谢

最佳答案

这是有效的代码:

public boolean onOptionsItemSelected(MenuItem item) {

switch (item.getItemId()) {
case android.R.id.home:
// back button
Intent resultIntent = new Intent();
setResult(Activity.RESULT_OK, resultIntent);
finish();
return true;

}
return super.onOptionsItemSelected(item);
}

我猜 finish() 将关闭当前 Activity,并返回 true 以告知操作已处理。 (默认的后退 Action 好像和finish()不一样。)

关于android - 单击 ActionBar 中的后退按钮时不会调用 onActivityResult,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20161234/

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