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
相关产品推荐
相关产品推荐

