首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >设置微调器项目的ID

设置微调器项目的ID
EN

Stack Overflow用户
提问于 2011-04-26 22:50:17
回答 5查看 27.9K关注 0票数 32

我有一个字符串数组,用来填充一个微调器对象。但是,我想为微调器的每个元素附加一个ID,这样当用户选择一个项目时,我就有了它的ID来保存到其他一些数据中。我该怎么做呢?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-04-26 22:59:19

你说的id是什么意思。可以使用ArrayAdapter填充微调器。选择item时,只需从适配器获取元素并保存所需的数据。

代码语言:javascript
运行
复制
Spinner spinner = (Spinner) findViewById(R.id.spinner);
ArrayAdapter<MyObject> adapter = ... // initialize the adapter
adapter.setDropDownViewResource(android.R.layout.some_view);
spinner.setAdapter(adapter);

以及当选择项时

代码语言:javascript
运行
复制
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
    MyObject selected = parent.getItemAtPosition(pos);
    // save any data relevant with selected item   
}

如果您将数据存储在db中,则可以使用CursorAdapter和onItemSelected从光标中获取所选项目的id。

票数 19
EN

Stack Overflow用户

发布于 2013-12-31 15:49:48

创建一个类StringWithTag并使用来代替列表中的字符串名称,如下所示:-

代码语言:javascript
运行
复制
public class StringWithTag {
    public String string;
    public Object tag;

    public StringWithTag(String stringPart, Object tagPart) {
        string = stringPart;
        tag = tagPart;
    }

    @Override
    public String toString() {
        return string;
    }
}

在将项目添加到微调器部分中:-

代码语言:javascript
运行
复制
List<StringWithTag> list = new ArrayList<StringWithTag>();
list.add(new StringWithTag("Oldman", "12345"));
list.add(new StringWithTag("Umpire", "987654"));
list.add(new StringWithTag("Squad", "ABCDEE"));
ArrayAdapter<StringWithTag> adap = new ArrayAdapter<StringWithTag> (this, android.R.layout.simple_spinner_item, list);
....
....

在监听器中:-

代码语言:javascript
运行
复制
public void onItemSelected(AdapterView<?> parant, View v, int pos, long id) {
    StringWithTag s = (StringWithTag) parant.getItemAtPosition(pos);
    Object tag = s.tag;
}

瞧!}

票数 46
EN

Stack Overflow用户

发布于 2011-04-26 23:02:33

我不认为您可以将任意的ID附加到文本数组资源的元素上,如果您正在使用的话。

我认为附加此类ID的最简单方法是硬编码(如果使用静态文本资源)或从(数组中的字符串位置)->(主键)动态构建映射(如果在运行时获得字符串)。

编辑:另一方面,Mojo Risin有一个要点-你应该检查一下CursorAdapter API是否已经为你做了你需要的事情。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5792159

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档