Spinner上的setPrompt不起作用

时间:2012-11-10 22:13:19

标签: android spinner

我对Android开发很新,我似乎有一个我无法理解的问题。我有一个微调器,值设置得很好,但我的提示没有出现。我试图在xml和java代码中都设置它,但两者都没有。以下是我的配置。我觉得我错过了一些基本的东西,但我不知道它到底是什么。

任何帮助将不胜感激。克雷格

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#000000" >

    <Spinner
        android:id="@+id/band"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_marginTop="72dp"
        android:prompt="@string/year_prompt"
        android:textColor="#F0F0F0" />

    <Spinner
        android:id="@+id/spinner1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:layout_marginTop="28dp"
        android:entries="@array/year_array"
        android:prompt="@string/year_prompt"
        android:textColor="#F0F0F0" />

</RelativeLayout>




<string name="year_prompt">Select A Year</string>
<string-array name="year_array">
    <item >2000</item>
    <item >2001</item>
    <item >2002</item>
    <item >2003</item>
    <item >2004</item>
    <item >2005</item>
</string-array>

1 个答案:

答案 0 :(得分:4)

你的升级版没有显示的原因是因为在android 3.0+中,提示没有空间。

这是一个3.0之前的旋转器的屏幕截图

提示位于顶部,其中显示“选择国家/地区”,屏幕截图为http://www.mkyong.com/android/android-spinner-drop-down-list-example/

enter image description here

因此不再显示提示。

有几种可能性。

首先,您可以在list-array的顶部添加一个与您的提示相同的项目

否则,您可以使用按钮并从中创建下拉列表。

首先,在你的布局中用一个按钮替换你的微调器,并给它提供你提示的文本

然后将您的微调器上的项目列表移动到名为optionmenu.xml

的文件中

                        

然后声明您的按钮并为其设置onClickListener

在该方法中,输入以下代码

在第14行,您指定的布局是您的optionmenu布局

public void showPopup(View v) {
PopupMenu popup = new PopupMenu(this, v);
MenuInflater inflater = popup.getMenuInflater();
inflater.inflate(R.layout.optionmenu, popup.getMenu());
popup.show();

} 当您调用此方法时,您需要执行以下操作

    View p = (View)findViewById(R.id.spinner button);
showPopup(p);

在此代码价格中,View p是您要显示菜单顶角的位置的视图。所以在这种情况下,它将是你的按钮

请参阅此处的答案以实施它 - android menu code not working

在每个case:.....语句中,添加一行将按钮文本设置为字符串。

case R.id.item1:

button.setText("item1");&GT;

这里有一些其他好的解决方案 -

How to make an Android Spinner with initial text "Select One"