您好我在调用startActivityForResult()并尝试在onAcvityResult()方法中处理结果.但是,Intent数据为null,结果为RESULT_CANCELED.我不知道为什么.
我正在创建活动:
startActivityForResult(new Intent(this, Class.class),LIST_RESULT);
Run Code Online (Sandbox Code Playgroud)
然后在Activity类中
@Override
public void onBackPressed() {
super.onBackPressed();
Intent data = new Intent();
Bundle bundle = new Bundle();
bundle.putParcelable("name", la);
data.putExtras(bundle);
if (getParent() == null) {
setResult(Activity.RESULT_OK, data);
} else {
getParent().setResult(Activity.RESULT_OK, data);
}
//finish();
}
Run Code Online (Sandbox Code Playgroud)
finish()无效.事实上,我在LogCat中收到重复完成请求HistoryRecord的警告
我正在处理结果:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch(requestCode) {
case(LIST_RESULT):
if(resultCode == Activity.RESULT_OK) {
previousList = data.getExtras();
}
break;
}
}
Run Code Online (Sandbox Code Playgroud)
data为null,resultCode为Action.RESULT_CANCELED.
任何想法为什么我没有得到任何通过?在我设置和阅读它之间有什么改变吗?返回结果的活动中的mParent也为null.
亚历克斯
Wil*_*ate 30
亚历克斯,
我想你想finish()在你的onBackPressed()方法中删除被调用的东西,并用调用来替换它super.onBackPressed().我相信打电话给super.onBackPressed()完成,你永远不会有机会打电话setResult().
尝试...
@Override
public void onBackPressed() {
Intent data = new Intent();
Bundle bundle = new Bundle();
bundle.putParcelable("name", la);
data.putExtras(bundle);
if (getParent() == null) {
setResult(Activity.RESULT_OK, data);
} else {
getParent().setResult(Activity.RESULT_OK, data);
}
super.onBackPressed();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16851 次 |
| 最近记录: |