You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:38:15