onActivityResult方法不被称为 [英] onActivityResult method is not being called
问题描述
我有我的android应用程序的问题。我不知道为什么'onActivityResult'方法是不会被调用的操作栏时,上升的导航按钮是pressed。我想我所做的一切都是正确的:
意向意图=新的意图(ParentActivity.this,ChildActivity.class);
startActivityForResult(意向,1000);
保护无效onActivityResult(INT申请code,INT结果code,意图数据) { super.onActivityResult(要求code,因此code,数据); 如果(数据= NULL和放大器;!&安培;请求code == 1000) { 捆绑额外= data.getExtras(); 布尔RC = extras.getBoolean(MyConstants.INTENT_EXTRA_RESULT); 如果(RC) { ....... } } }
公共布尔onOptionsItemSelected(菜单项项) { 如果(item.getItemId()== android.R.id.home) { 意向书结果=新的意图((字符串)NULL); result.putExtra(MyConstants.INTENT_EXTRA_RESULT,真正的); 的setResult(RESULT_OK,结果); NavUtils.navigateUpFromSameTask(本); 返回true; } 其他 { 返回super.onOptionsItemSelected(项目); } }
公共无效结束()
{
意向书结果=新的意图((字符串)NULL);
result.putExtra(Constantes.INTENT_EXTRA_HAY_QUE_RECALCULAR,hayQueRecalcular);
的setResult(RESULT_OK,结果);
super.finish();
}
我不知道为什么'onActivityResult方法不会被调用。
我观察到的是,孩子的活动是不是被完成('完成'的方法不会被调用)的操作栏时,'向上导航按钮pssed $ P $。然而,它被调用的时候后退按钮(硬件按钮)是pressed。
我在做什么错了?
感谢
随着孩子的活动只是在你的父活动的顶部,不需要这种方法
NavUtils.navigateUpFromSameTask(本);
这样写
公共布尔onOptionsItemSelected(菜单项项){
如果(item.getItemId()== android.R.id.home){
意向书结果=新的意图((字符串)NULL);
result.putExtra(MyConstants.INTENT_EXTRA_RESULT,真正的);
的setResult(RESULT_OK,结果);
完();
返回true;
} 其他 {
返回super.onOptionsItemSelected(项目);
}
}
完成你的孩子的活动时,home键是pressed。
I'm having a problem in my android application. I don't know why 'onActivityResult' method is not being called when 'Up navigation' button from action bar is pressed. I think I've done everything properly:
Intent intent = new Intent(ParentActivity.this, ChildActivity.class);
startActivityForResult(intent, 1000);
protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (data != null && requestCode == 1000) { Bundle extras = data.getExtras(); Boolean rc = extras.getBoolean(MyConstants.INTENT_EXTRA_RESULT); if (rc) { ....... } } }
public boolean onOptionsItemSelected(MenuItem item) { if (item.getItemId() == android.R.id.home) { Intent result = new Intent((String)null); result.putExtra(MyConstants.INTENT_EXTRA_RESULT, true); setResult(RESULT_OK, result); NavUtils.navigateUpFromSameTask(this); return true; } else { return super.onOptionsItemSelected(item); } }
public void finish()
{
Intent result = new Intent((String)null);
result.putExtra(Constantes.INTENT_EXTRA_HAY_QUE_RECALCULAR, hayQueRecalcular);
setResult(RESULT_OK, result);
super.finish();
}
I'm not sure why 'onActivityResult' method is not being called.
What I've observed is that child activity is not being finished ('finish' method is not being called) when 'Up navigation' button from action bar is pressed. However it is called when back button (hardware button) is pressed.
What I'm doing wrong?
Thanks
As your child Activity is just on the top of your Parent Activity, no need of this method
NavUtils.navigateUpFromSameTask(this);
write like
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == android.R.id.home) {
Intent result = new Intent((String) null);
result.putExtra(MyConstants.INTENT_EXTRA_RESULT, true);
setResult(RESULT_OK, result);
finish();
return true;
} else {
return super.onOptionsItemSelected(item);
}
}
finish your Child Activity when home button is pressed.
这篇关于onActivityResult方法不被称为的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!