2015-02-13 3 views
0

Я знаю, что в Интернете много решений для такого же вопроса, но я все еще не мог найти его для удовлетворения моих потребностей.Подсказка для Spinner

У меня есть spinner в моем макете xml и массив строк в strings.xml.

<string-array name="days"> 
     <item>Monday</item> 
     <item>Tuesday</item> 
     <item>Wednesday</item> 
     <item>Thursday</item> 
     <item>Friday</item> 
     <item>Saturday</item> 
    </string-array> 

и код Java, как

Spinner days=(Spinner) findViewById(R.id.days_1); 
ArrayAdapter adapter=ArrayAdapter.createFromResource(this, 
R.array.days,R.layout.support_simple_spinner_dropdown_item); 
    days.setAdapter(adapter); 

Я хочу, чтобы настроить подсказку для блесны.

Я уже читал другие ответы на тот же вопрос, но когда я добавить элемент в строке массива

<string-array name="days"> 
      <item>Monday</item> 
      <item>Tuesday</item> 
      <item>Wednesday</item> 
      <item>Thursday</item> 
      <item>Friday</item> 
      <item>Saturday</item> 
      <item>Select the Day</item> <!--New item--> 
     </string-array> 

и в Java после этой строки

days.setSelection(/*last element*/); 

, что происходит в том, что подсказка становится постоянной в раскрывающемся списке. Он не работает как подсказка в edittext.

Просьба предложить мне какой-нибудь способ установить для этого намек.

Заранее спасибо.

+0

Его там в выпадающем меню, потому что вы добавляете его в адаптер. Чтобы установить подсказку, вам придется ставить текстовый элемент в адаптер статически. НО независимо от того, что вы выберете, этот текст будет отображаться (не в списке, а в качестве выбора). –

+0

Пожалуйста, перейдите по этой ссылке, это может быть полезно для того, что вы хотите сделать. [Как сделать Android Spinner с исходным текстом «Выбрать один»] (http://stackoverflow.com/questions/867518/how-to-make-an-android-spinner-with-initial-text-select-one) – BBdev

ответ

0

Вы можете попробовать это Изменение строкового массива в

<string-array name="days"> 
     <item /> 
     <item>Monday</item> 
     <item>Tuesday</item> 
     <item>Wednesday</item> 
     <item>Thursday</item> 
     <item>Friday</item> 
     <item>Saturday</item>    
    </string-array> 

Теперь писать на выбранный пункт слушателем для блесны

days.setOnItemSelectedListener(new OnItemSelectedListener() { 

     @Override 
     public void onItemSelected(AdapterView<?> parent, View view, 
       int position, long id) { 
      TextView tv = (TextView) days.getChildAt(position); 
      if (position == 0) { 

       if (tv != null) { 
        tv.setText("Select the Day"); 
        tv.setTextColor(Color.GRAY); 
       } 
      } 

     } 

     @Override 
     public void onNothingSelected(AdapterView<?> parent) { 
      // TODO Auto-generated method stub 

     } 
    }); 

Это it..Enjoy ...