簡體   English   中英

設置值並在Android Spinner中顯示文本

[英]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:擴展BaseAdapterArrayAdapter以包裹您的數據模型,覆蓋getView()以返回您想要在Spinner本身中顯示的內容

步驟3:在選擇事件上,使用位置在數據模型中查找相應的對象,並查找該值

如果你想在顯示Spinner只是在數據模型中的每個元素的文本表示,可以跳過自定義Adapter -只需使用ArrayAdapter<YourModelClass>並重寫toString()YourModelClass返回任何你想要的顯示文本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM