kai*_*uki 17 java android spinner drop-down-menu
我需要帮助设置值并在微调器中显示文本.按照现在我通过数组适配器填充我的微调器,例如
mySpinner.setAdapter(myAdapter);
Run Code Online (Sandbox Code Playgroud)
据我所知,显示文本和旋转器在同一位置的值相同.我可以从微调器获得的另一个属性是项目上的位置.
现在在我的情况下,我想制作像我们在.NET中的下拉框一样的微调器.
它包含文本和值.
显示文本的位置,值位于后端.所以,如果我更改下拉框,我可以使用其选定的文本或值.但它没有发生在android spinner的情况下.
例如:
文本价值
Cat 10
Mountain 5
Stone 9
Fish 14
River 13
Loin 17
所以从上面的数组我只显示非生物对象文本,我想要的是,当用户选择它们时,我得到了值,就像当山选择我得到5
我希望这个例子让我的问题更加明确......
thankx
alu*_*lun 15
如果您不想创建自己的适配器类,则可以将数据包装在具有toString的内容中,以返回要在微调器中显示的内容.我使用这样的类:
public class TextItemPair<T> {
private String text;
private T item;
public TextItemPair(String text, T item) {
this.text = text;
this.item = item;
}
public String getText() {
return text;
}
public T getItem() {
return item;
}
@Override
public String toString() {
return getText();
}
}
Run Code Online (Sandbox Code Playgroud)
当微调器改变时:
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
YourTypeHere t = ((TextItemPair<YourTypeHere>)spinner.getItemAtPosition(position)).getItem();
}
Run Code Online (Sandbox Code Playgroud)
Com*_*are 12
步骤1:为您的文本和值对创建数据模型
步骤#2:扩展BaseAdapter或ArrayAdapter包围您的数据模型,覆盖getView()返回您想要在Spinner自身中显示的任何内容
步骤3:在选择事件上,使用位置在数据模型中查找相应的对象,并查找值
如果你想在显示Spinner只是在数据模型中的每个元素的文本表示,可以跳过自定义Adapter-只需使用ArrayAdapter<YourModelClass>并覆盖toString()在YourModelClass返回任何你想要显示文本.
| 归档时间: |
|
| 查看次数: |
26827 次 |
| 最近记录: |