我正在使用标准的Android Intent / Bundle方法将数据传递给子活动.
问题是,尽管在活动开始之前Intent看起来不错,但在子活动中它显示为null.我找不到其他遇到此问题的人,所以我想问一下有关在哪里查找/如何调试的指针.
(目标是AndroID 2.1)
家长活动摘要:
@OverrIDe protected voID onListItemClick(ListVIEw l, VIEw v, int position, long ID) { super.onListItemClick(l, v, position, ID); Intent i = new Intent(ctx, ArticleVIEw.class); i.putExtra("url", articles.get(position).url.toString()); // The following line correctly logs the URL Log.d(TAG,"Starting article vIEwer with url " + i.getStringExtra("url")); startActivityForResult(i,ACTIVITY_ARTICLE); }
儿童活动摘要:
@OverrIDeprotected voID onCreate(Bundle icicle) { super.onCreate(icicle); setContentVIEw(R.layout.article_vIEw); if (icicle != null) { // Never called! } else { // Always called Log.d(TAG,"Icicle is null - no URL passed in"); }}
忽略icicle为null并尝试从中检索状态信息(使用getString)会导致挂起并:
03-14 22:23:03.529: WARN/ActivityManager(52): Activity HistoryRecord{44ddd238 com.t.s/.ArticlesList} being finished, but not in LRU List
任何提示,不胜感激.
解决方法:
不是将Intent传递给子活动(或任何活动)的构造函数.
意图可以通过获取
Intent intent = getIntent();
您所指的Bundle冰柱是Activity从暂停状态恢复时使用的Bundle.例如.如果您需要在重新启动活动之前保存活动的任何状态,则此位置是存储数据的地方.
总结以上是内存溢出为你收集整理的java-捆绑包在传递给子活动时变为null全部内容,希望文章能够帮你解决java-捆绑包在传递给子活动时变为null所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)