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

如何在第二个Activity同时显示首个Activity选中的Spinner项名及对应关联字符串

实现步骤

1. 修改第二个Activity(DetailActivity)的布局文件

你当前布局里第二个TextView的ID是battleship且固定写死了战舰的字符串,先把它改成通用的描述控件,删除默认文本:

<TextView
    android:id="@+id/site_desc"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:layout_margin="16dp"
    android:layout_marginTop="40dp"/>

2. 修改DetailActivity的Java逻辑

在onCreate方法中新增匹配选中项和对应字符串资源的逻辑,代码如下:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_detail);
    Intent intent = getIntent();
    String messageText = intent.getStringExtra(EXTRA_MESSAGE);
    // 原有逻辑:设置顶部标题
    TextView messageView = findViewById(R.id.sites);
    messageView.setText(messageText);
    // 新增逻辑:匹配对应描述资源
    TextView descView = findViewById(R.id.site_desc);
    int descResId;
    switch (messageText) {
        case "Battleship North Carolina":
            descResId = R.string.battleship;
            break;
        case "Wilmington Railroad Museum":
            descResId = R.string.railroad;
            break;
        case "Bellamy Mansion Museum":
            descResId = R.string.house;
            break;
        default:
            descResId = R.string.app_name; // 可自行替换为默认提示字符串
    }
    descView.setText(getResources().getString(descResId));
}

优化建议(可选)

你也可以直接传递Spinner选中的下标而非字符串,后续如果修改站点名称不需要调整匹配逻辑,更易维护:

  1. 修改MainActivity的onItemSelected方法,新增传递下标参数:
intent.putExtra(DetailActivity.EXTRA_MESSAGE, text);
// 新增一行传递选中下标
intent.putExtra("selected_position", position);
startActivity(intent);
  1. DetailActivity中直接通过下标匹配资源:
// 拿到传递的下标,默认值0对应"请选择"项
int selectedPosition = intent.getIntExtra("selected_position", 0);
// 下标和资源的映射数组,下标0留空对应"请选择"项
int[] descResArr = new int[]{0, R.string.battleship, R.string.railroad, R.string.house};
if (selectedPosition > 0 && selectedPosition < descResArr.length) {
    descView.setText(getResources().getString(descResArr[selectedPosition]));
}

内容的提问来源于stack exchange,提问作者Jim Gallagher

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 15:39:02