2012-06-03 36 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

相关问题