Android微调框提示文字未显示

时间:2011-10-03 08:10:45

标签: android

显示数据数组的第一年,而不是我的微调器中的提示文本。我尝试在XML中添加提示,但我也试过代码。此外,在添加spinnerSelector属性时,它为我提供了“资源未找到错误”。

XML

<Spinner
    android:id="@+id/spinnerYear"
    android:layout_height="wrap_content"
    android:layout_width="fill_parent"
    android:layout_marginLeft="10dip"
    android:layout_marginRight="10dip"
    android:drawSelectorOnTop="true"
    android:padding="5dip"
    android:prompt="@string/spinner_header"
    android:background="@drawable/selector_yearspinnerback"
    android:layout_below="@+id/linearLayout_gender_btns"
    android:layout_centerHorizontal="true"></Spinner>
  -- android:spinnerSelector="@drawable/category_arrow"

代码

ArrayList<String> yearList = new ArrayList<String>();
int now = new Date().getYear() + 1900;
for (int i = now; i > now - 110; i--) {
    yearList.add(i + "");
}
Spinner spinner = (Spinner) findViewById(R.id.spinnerYear);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, yearList);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);

3 个答案:

答案 0 :(得分:41)

也许您看到微调器下拉项目为列表而没有任何提示文本。微调器有两种模式显示项目,下拉对话框

将此属性作为XML atrtribute添加到您的微调器:

android:spinnerMode="dialog"

现在,您将在弹出对话框中选择列表而不是下拉列表中的项目。

答案 1 :(得分:1)

您必须在

之后设置adapter.setDropDownViewResource (android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);

所以固定代码是:

ArrayList<String> yearList = new ArrayList<String>();
int now = new Date().getYear() + 1900;
for (int i = now; i > now - 110; i--) {
    yearList.add(i + "");
}
Spinner spinner = (Spinner) findViewById(R.id.spinnerYear);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, yearList);
spinner.setAdapter(adapter);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

(我希望它适合你,因为它对我有用:D!)

答案 2 :(得分:0)

对我来说,android:提示XML attibute以及Spinner.setPrompt工作,列表选择器显示正确的标题。

尝试在代码中查找错误,或者在某些时候调用Spinner.getPrompt并将其打印到日志中,以找到我们从哪里获得无效的标题。