邓燕华 2021-03-27 14:39 采纳率: 57.1%
浏览 234

Android Spinner设置选中值

我是通过key和value绑定到Spinner中,key就是数据中的id,value是名称,怎么通过key设置下拉框默认选中

SpinnerAdapter apsAdapter= spType.getAdapter(); //得到SpinnerAdapter对象
int k= apsAdapter.getCount();
for(int i=0;i<k;i++){

    if(value.equals(apsAdapter.getItem(i).toString())){
        spType.setSelection(i,true);// 默认选中项
        break;
    }
}

这是通过value设置,我想通过key设置,请问怎么解决??

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-07-23 21:22
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    你可以使用以下方法来设置Spinner的默认选择项:

    1. 获取当前选择的索引:首先,你需要获取当前在Spinner中被选中的项目的索引。这可以通过调用getSelectedItemPosition()方法来实现。

    2. 设置新的选择项:然后,你可以通过更新getSelectedItemId()属性来替换当前的选择项。注意,如果getSelectedItemPosition()返回-1,表示没有选定任何项目,所以你可能需要检查这个条件。

    3. 使用new SelectedItem()方法:如果你想要将新选择的项目添加到列表中,可以使用add()insert()方法。但是请注意,这些方法可能会覆盖已存在的项目。

    4. 更新Spinner的布局:最后,你需要更新你的Spinner的布局以反映新的选择项。这可以通过改变getSelectedItem()返回的数据引用来完成。

    以下是示例代码:

    public void setDefaultSelection(String key) {
        int index = getSelectedItemPosition(key); // 获取当前选择的索引
    
        if (index == -1) { // 检查是否有选择项
            return; // 如果没有选择项,则直接返回
        }
    
        mSpinner.setSelection(index, true);
    }
    
    private int getSelectedItemPosition(String key) {
        for (int i = 0; i < mSpinnerAdapter.getCount(); i++) {
            if (mSpinnerAdapter.getItem(i).toString().equals(key)) {
                return i;
            }
        }
        return -1; // 没有找到匹配项
    }
    

    在这个例子中,我们首先尝试获取当前选择的索引。如果没有找到匹配项,我们就返回-1。然后,我们更新Spinner的布局,并将其设置为默认选择的项。

    评论

报告相同问题?