我知道有这样的问题: Android的意图束-总是空和意图束-回报无效的每次但没有正确的答案。
在我的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
束总是空。 我已经调试它和意图( intent = getIntent()
的设置为空各个领域,除了一个表明这是(什么课MapViewActivity
)。
我也试着通过把束intent.putExtras(b)
具有同样的效果。 该intent.putExtra("asdf", true)
仅用于调试的原因-我不能得到这个数据太(因为getIntent()
几乎所有字段设置为null)。
编辑
以下的答案是正确的和工作。 这是我的错。 我没有正确地传递我的包新的意图。