【发布时间】:2013-12-08 07:11:41
【问题描述】:
这是我的问题:
-
创建一个 MainActivity。添加一个按钮,该按钮将启动另一个活动 SecondActivity。
Intent i = new Intent(getActivity(),SecondActivity.class); startActivityForResult(i,0); -
在 SecondActivity 中,我捕获了返回按钮单击事件,并添加了一个返回到第一个 Activity 的按钮。
点击操作栏中的后退按钮时:
@Override
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中的返回按钮它从来没有被调用过。谁能告诉我为什么?谢谢
【问题讨论】:
-
在 onOptionsItemSelected() 中取消注释 finish() 并尝试一次...
-
我尝试使用finish() 或不使用finish()。两者都不起作用。
-
'返回真;'是该问题的真正关键字。如果您错过了,应用程序将无法正常关闭。
标签: android android-actionbar onactivityresult