【发布时间】:2016-04-29 01:39:54
【问题描述】:
我知道有这样的问题: android-intent-bundle-always-null 和 intent-bundle-returns-null-every-time 但没有正确答案。
在我的Activity 1:
public void goToMapView(Info info) {
Intent intent = new Intent(getApplicationContext(), MapViewActivity.class);
//intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
intent.putExtra("asdf", true);
info.write(intent);
startActivity(intent);
}
在信息中:
public void write(Intent intent) {
Bundle b = new Bundle();
b.putInt(AppConstants.ID_KEY, id);
... //many other attributes
intent.putExtra(AppConstants.BUNDLE_NAME, b);
}
public static Info read(Bundle bundle) {
Info info = new Info();
info.setId(bundle.getInt(AppConstants.ID_KEY));
... //many other attributes
return info;
}
在 MapViewActivity (Activity 2) 中:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.map_view);
Bundle extras = getIntent().getBundleExtra(AppConstants.BUNDLE_NAME);
info = Info.read(extras);
...
}
问题是extras bundle 始终为空。我已经对其进行了调试,并且 Intent (intent = getIntent()) 的所有字段都设置为 null,除了一个指示这是什么类 (MapViewActivity) 的字段。
我也尝试通过intent.putExtras(b) 放置捆绑包,效果相同。
intent.putExtra("asdf", true) 仅用于调试原因 - 我也无法获取此数据(因为 getIntent() 几乎所有字段都设置为空)。
编辑
以下答案正确且有效。这是我的错。我没有正确地将我的捆绑包传递给新意图。
【问题讨论】:
标签: android android-intent null bundle