[英]Setting values and display Text in Android Spinner
我需要幫助設置值並在微調器中顯示文本。 按照現在我通過數組適配器填充我的微調器,例如
mySpinner.setAdapter(myAdapter);
據我所知,顯示文本和旋轉器在同一位置的值相同。 我可以從微調器獲得的另一個屬性是項目上的位置。
現在在我的情況下,我想制作像我們在.NET中的下拉框一樣的微調器。
它包含文本和值。
顯示文本的位置,值位於后端。 所以,如果我更改下拉框,我可以使用其選定的文本或值。 但它沒有發生在android spinner的情況下。
例如:
文字價值
貓10
山5
石頭9
魚14
河13
腰部17
所以從上面的數組我只顯示非生物對象文本,我想要的是,當用戶選擇它們時,我得到了值,就像當山選擇我得到5
我希望這個例子讓我的問題更加明確......
thankx
如果你不想創建自己的適配器類,你可以將數據包裝成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();
}
}
當微調器改變時:
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
YourTypeHere t = ((TextItemPair<YourTypeHere>)spinner.getItemAtPosition(position)).getItem();
}
步驟1:為您的文本和值對創建數據模型
步驟#2:擴展BaseAdapter
或ArrayAdapter
以包裹您的數據模型,覆蓋getView()
以返回您想要在Spinner
本身中顯示的內容
步驟3:在選擇事件上,使用位置在數據模型中查找相應的對象,並查找該值
如果你想在顯示Spinner
只是在數據模型中的每個元素的文本表示,可以跳過自定義Adapter
-只需使用ArrayAdapter<YourModelClass>
並重寫toString()
上YourModelClass
返回任何你想要的顯示文本。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.