2012-06-03 52 views
8

我有一個三項的微調,我使用XML字符串數組資源來提供它。當您打開一個活動時,微調通常會顯示數組列表中的第一個項目。我想改變它,並在選擇項目之前在微調器中顯示文本「選擇一個」。在選擇項目之前設置微調器的文本

我該怎麼做?

+0

[如何製作Android Spinner機智h最初的文本「選擇一個」](http://stackoverflow.com/questions/867518/how-to-make-an-android-spinner-with-initial-text-select-one) – blahdiblah

回答

9

你可以做兩的一個途徑。

1)將「選擇一個」添加爲xml中的第一個項目,並將您的偵聽器編碼爲忽略該選擇。

2)創建一個自定義適配器插入它作爲第一線,

編輯

在你的資源

<string-array name="listarray"> 
    <item>Select One</item> 
    <item>Item One</item> 
    <item>Item Two</item> 
    <item>Item Three</item> 
</string-array> 

在你onItemSelected監聽器:

spinnername.setOnItemSelectedListener(new OnItemSelectedListener() { 
@Override 
    public void onNothingSelected(AdapterView<?> parent) { 
    } 
    @Override 
    public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) { 
     if (pos == 0) { 
     }else { 
      // Your code to process the selection 
     } 
    } 
}); 
+0

有沒有辦法從字符串資源插入它? – JohnD

+0

是的,只需將它作爲陣列資源中的第一個條目添加即可。我編輯了我的答案來提供一個例子。 – Barak

+0

這是否解決了您的問題? – Barak

1

要爲微調器設置默認文本,您必須爲您的微調控制器使用android:[email protected]/SelectOne其中SelectOne是在您的string.xml中定義的。

例子:

<Spinner android:id="@+id/spinnerTest" 
android:layout_marginLeft="50px" 
android:layout_width="fill_parent"     
android:drawSelectorOnTop="true" 
android:layout_marginTop="5dip" 
android:prompt="@string/SelectOne" 
android:layout_marginRight="30px" 
android:layout_height="35px" 
/> 
+0

不是OP想要的。他希望它在微調中,而不是它的標題。 – Barak

+0

是的,沒錯。 – JohnD

+1

檢查這個帖子,它給miltitude方式做你想做的。 http://stackoverflow.com/questions/867518/how-to-make-an-android-spinner-with-initial-text-select-one – 113408

相關問題