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

Android Java开发:如何传递Spinner选中项到另一Activity并做条件判断

Spinner选中内容类型说明

Spinner通过getSelectedItem()获取的返回值类型由绑定Adapter的数据源类型决定,若使用默认ArrayAdapter<String>绑定字符串列表作为数据源,返回值为String类型,可直接调用toString()获取文本内容。

步骤1:第一个Activity获取选中内容并传递
  • 首先获取Spinner选中内容
// 获取选中的文本内容
String selectedText = yourSpinner.getSelectedItem().toString();
// 可选:获取选中项的位置
int selectedPosition = yourSpinner.getSelectedItemPosition();
  • 封装到Intent传递到第二个Activity
Intent jumpIntent = new Intent(CurrentActivity.this, TargetActivity.class);
// 传递选中文本
jumpIntent.putExtra("spinner_selected_text", selectedText);
// 可选:传递选中位置
jumpIntent.putExtra("spinner_selected_pos", selectedPosition);
startActivity(jumpIntent);
步骤2:第二个Activity接收数据并做条件判断
  • 接收Intent传递的参数
// 接收选中文本,默认值为null
String receivedText = getIntent().getStringExtra("spinner_selected_text");
// 接收选中位置,默认值为-1(表示未获取到有效位置)
int receivedPos = getIntent().getIntExtra("spinner_selected_pos", -1);
  • 条件判断逻辑
    注意:Java中字符串内容对比必须使用equals()方法,不可用==,==对比的是字符串内存地址而非内容
// 基于选中文本判断示例
if (receivedText != null) {
    if (receivedText.equals("选项1")) {
        // 执行选项1对应操作
    } else if (receivedText.equals("选项2")) {
        // 执行选项2对应操作
    }
}

// 基于选中位置判断示例
if (receivedPos != -1) {
    if (receivedPos == 0) {
        // 执行第一个选中项对应操作
    } else if (receivedPos == 1) {
        // 执行第二个选中项对应操作
    }
}
注意事项
  • 若Spinner未完成初始化就调用getSelectedItem(),会返回null,调用方法前建议先做非空校验避免空指针异常
  • 若使用自定义对象作为Spinner的数据源,getSelectedItem()直接返回对应自定义对象实例,强转后可直接调用对象属性做判断

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 05:15:00