[英]Why does my Android activity force close when I try to access info I put in the bundle?
我正在编写一个Android应用程序。 活动之一是ListActivity,因此当人员在列表中选择一个项目时,我希望将该项目的文本值存储在Intent / Bundle中,以便下一个活动知道该值。 我的代码如下所示:
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView parent, View view,
int position, long id) {
Intent intent = new Intent(view.getContext(), FavoriteEditFromDest.class);
intent.putExtra("com.example.myapp.Name", ((TextView) view).getText());
startActivity(intent);
}
});
}
要启动的活动的onCreate方法如下所示:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.favorite_dest_edit);
// nameB is a global string variable defined above.
nameB = savedInstanceState.getString("com.example.myapp.Name");
}
当我从ListActivity的列表中单击一个项目时,它开始执行onCreate代码,但是当它到达尝试检索字符串值的行时,将显示一个强制关闭对话框。
我在使用Bundle传递信息方面经验不足,因此,我将不胜感激!
nameB = savedInstanceState.getString("com.example.myapp.Name");
应该替换为
Bundle bundle = getIntent().getExtras();
nameB = bundle.getString("com.example.myapp.Name");
试试看,看看是否有帮助。
在Eclipse中使用adb logcat
,DDMS或DDMS透视图检查您的堆栈跟踪,并查看触发“强制关闭”的异常。
在这种情况下,我怀疑您会发现放入Bundle
内容不是String
,因为getText()
不会返回String
。 但是,这只是一个猜测-您的堆栈跟踪应该告诉您更多信息。
除其他问题外
intent.putExtra("com.example.myapp.Name", ((TextView) view).getText());
应该
intent.putExtra("com.example.myapp.Name", ((TextView) view).getText().toString());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.