背景
我的目标:
问题:
java.lang.RunTimeException: Failure delivering results ResultInfo{who=null, request=1,
result=0, data=Intent { (has extras) }} to activity.
我认为我犯了一个大错,但我无法解决它。
切换案例位于 MainActivity :
PICKED的值为1;
switch(item.getItemId()){
case R.id.icon:
Intent myIntent = new Intent(MainActivity.this, HeroListActivity.class);
MainActivity.this.startActivityForResult(myIntent, PICKED);
return true;
default:
return super.onOptionsItemSelected(item);
}
protected void onActivityResult(int requestCode, int resultCode, Intent data){
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1) {
Intent intent = getIntent();
HashMap<String, String> aList = (HashMap<String, String>)intent.getSerializableExtra("map");
Log.d("HashMap", aList.get("Name"));
}
}
onItemClick :
onItemClick正在运行,当我使用Log.d时,我从HashMap中获取了正确的数据。
HashMap<String, String> o = (HashMap<String, String>) adapter.getItemAtPosition(position);
Log.d("onItemClick", ""+o);
Intent intent = new Intent();
intent.putExtra("map", o);
setResult(RESULTS_OK, intent);
finish();
我希望有人可以帮助我,并提前致谢。
答案 0 :(得分:0)
您应该在onActivityResult()
方法
Intent intent = getIntent();
用这个:
Intent intent = data;
data
是您传递的参数的名称 - 您的附加内容所在的位置。 getIntent()
调用在此实例中返回null
意图。