Android多Activity跳转同一页面无法获取多个Intent问题求助
问题分析与解决方案
嘿,我一眼就揪出你代码里的问题啦!问题核心出在Main_Page_Details(也就是你说的ResultActivity)的条件判断逻辑错误,导致SecondActivity传递的数据永远无法被读取到。
为啥会出现这种情况?
当你从SecondActivity通过putExtra("title2", title_text)往Intent里塞数据后,getIntent().getExtras()绝对不会是null——毕竟你已经给Intent添加了额外数据。但你原来的代码逻辑是:
- 只有当
extras == null时,才会去读取title2 - 可只要传了数据,
extras就不会为null,这就导致else分支永远执行不到!
同时,在extras != null的分支里,你只检查了title这个key,完全没处理title2的情况——所以从SecondActivity跳转过来时,代码会进入extras != null分支,但因为找不到title键,啥操作都不会做,标题自然不会被设置。
修正后的代码方案
你可以把逻辑改成在extras存在时,同时检查两个key,或者直接从Intent里获取对应值,两种写法都可行:
方案一:检查Bundle中的key(更严谨)
Bundle extras = getIntent().getExtras(); if (extras != null) { if (extras.containsKey("title")) { toolbar_title.setText(extras.getString("title")); } else if (extras.containsKey("title2")) { toolbar_title.setText(extras.getString("title2")); } } else { // 无数据传递时设置默认标题 toolbar_title.setText("默认详情页"); }
方案二:直接从Intent获取(更简洁)
String title = getIntent().getStringExtra("title"); if (title != null) { toolbar_title.setText(title); } else { String title2 = getIntent().getStringExtra("title2"); if (title2 != null) { toolbar_title.setText(title2); } else { toolbar_title.setText("默认详情页"); } }
额外小建议
其实如果只是传递标题,完全可以统一用同一个key(比如都叫"title"),这样接收页面的代码会更简洁,还不容易出错:
- FirstActivity保持
startintent.putExtra("title", title_text); - SecondActivity改成
startintent.putExtra("title", title_text); - 接收页面直接写:
String title = getIntent().getStringExtra("title"); if (title != null) { toolbar_title.setText(title); } else { toolbar_title.setText("默认详情页"); }
内容的提问来源于stack exchange,提问作者cooldev
相关产品推荐
相关产品推荐

