【发布时间】:2012-06-07 16:25:07
【问题描述】:
我有一个包含三个项目的微调器,我使用 XML 字符串数组资源来提供它。当您打开活动时,微调器通常会显示数组列表中的第一项。我想更改它并在选择项目之前在微调器中显示文本“选择一个”。
我该怎么做?
【问题讨论】:
标签: android spinner oncreate settext
我有一个包含三个项目的微调器,我使用 XML 字符串数组资源来提供它。当您打开活动时,微调器通常会显示数组列表中的第一项。我想更改它并在选择项目之前在微调器中显示文本“选择一个”。
我该怎么做?
【问题讨论】:
标签: android spinner oncreate settext
您可以通过以下两种方式之一来做到这一点。
1) 添加“Select One”作为您的 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
}
}
});
【讨论】:
要为微调器设置默认文本,您必须为微调器使用 android:prompt=@string/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"
/>
【讨论】: