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

Android Studio按钮跳转Activity空白,返回后才显示内容问题

问题分析与解决方案:跳转FishInfo Activity后显示空白,返回才正常

我一眼就揪出问题所在了——你每个按钮的点击事件里都连续启动了两次FishInfo Activity!

比如看barbsButton的点击逻辑:

barbsButton.setOnClickListener(new View.OnClickListener() {
    public void onClick(View view) {
        Intent intent = new Intent(getBaseContext(), FishInfo.class);
        intent.putExtra("typeName", "Barbs");
        startActivity(intent); // 第一次启动:带数据的页面
        Intent i = new Intent(getApplicationContext(),FishInfo.class);
        startActivity(i); // 第二次启动:完全空的页面
    }
});

点击按钮时,系统会先加载第一个带typeName数据的FishInfo页面,但紧接着又启动了一个不带任何Extra数据的新FishInfo页面。这时候你看到的是第二个空页面(所以显示XML里默认的"Name"和"Info"文本),当你按返回键关闭这个空页面后,才会显示之前那个带正确数据的页面。

解决方法很简单:

删除每个按钮点击事件中第二次启动Activity的冗余代码,只保留携带Extra数据的那一次启动即可。

修改后的barbsButton点击事件示例:

barbsButton.setOnClickListener(new View.OnClickListener() {
    public void onClick(View view) {
        Intent intent = new Intent(getBaseContext(), FishInfo.class);
        intent.putExtra("typeName", "Barbs");
        startActivity(intent); // 只保留这一行
    }
});

其他所有按钮(bettasButton、tetrasButton等)都要做同样的修改——删掉那行Intent i = new Intent(...)和对应的startActivity(i)。

额外提醒:

确保你的FishInfo Activity里正确读取了Intent携带的数据,不然即使传了数据也显示不出来。比如在FishInfo的onCreate方法里添加以下代码:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_fish_info);

    TextView nameTextView = findViewById(R.id.nameOfFish);
    TextView infoTextView = findViewById(R.id.fishInfo);

    Intent receivedIntent = getIntent();
    if (receivedIntent != null) {
        // 获取传递的类型名称
        String fishTypeName = receivedIntent.getStringExtra("typeName");
        // 获取传递的类型信息(注意有些按钮没传这个值,要做非空判断)
        String fishTypeInfo = receivedIntent.getStringExtra("typeInfo");

        // 更新TextView内容,为空时保留默认文本
        nameTextView.setText(fishTypeName != null ? fishTypeName : "Name");
        infoTextView.setText(fishTypeInfo != null ? fishTypeInfo : "Info");
    }
}

这样修改后,点击按钮就能直接打开带正确数据的FishInfo页面,不会再出现空白返回才显示的问题了。

内容的提问来源于stack exchange,提问作者B. Sommer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:48:54