如何设置Spinner的“提示”?

时间:2016-10-08 11:33:27

标签: android spinner

与Edittext中的“提示”选项相同,我需要一个Spinner中的默认文本。到目前为止,我使用“提示”字符串值,文本显示为弹出对话框的标题,但不是默认值。她是xml中的微调器:

    <Spinner
        android:id="@+id/..."
        style="@style/spinner"
        android:background="@drawable/..."
        android:spinnerMode="dialog"
        android:prompt="@string/..."/>

在.java中:

    Spinner categories = (Spinner) findViewById(R.id.spinnerCategories);
    categories.setOnItemSelectedListener(this);

    List<String> categoriesList = new ArrayList<String>();
    categoriesList.add("....");
    ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, categoriesList);
    categories.setAdapter(dataAdapter);
    dataAdapter.setDropDownViewResource
                      (android.R.layout.simple_spinner_dropdown_item);
    categories.setPrompt("TEXT");

2 个答案:

答案 0 :(得分:0)

  

我需要Spinner中的默认文本

Spinner中没有默认文字。 Spinner始终显示所选项目。如果您未通过setSelection()指定,则此位置为0。

答案 1 :(得分:0)

试试这个解决方案

    categoriesList.add("Select Category");
    categoryAdapter = new ArrayAdapter<String>(getContext(), android.R.layout.simple_spinner_item, categoriesList){

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {

            View v = super.getView(position, convertView, parent);
            if (position == getCount()) {
                ((TextView)v.findViewById(android.R.id.text1)).setText("");
                ((TextView)v.findViewById(android.R.id.text1)).setHint(getItem(getCount())); //"Hint to be displayed"
            }

            return v;
        }

        @Override
        public int getCount() {
            return super.getCount()-1; // you dont display last item. It is used as hint.
        }

    };