2016-10-08 33 views
2

Edittextの "hint"オプションと同じですが、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"); 

答えて

0

私はには、デフォルトのテキストはありませんスピナー

でのデフォルトのテキストを必要としますa SpinnerSpinnerには常に選択した項目が表示されます。 setSelection()で指定しないと、位置0になります。

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. 
     } 

    }; 
このソリューションをお試しください
関連する問題