2015-04-17 2 views
0

Я хотел бы иметь счетчик в панели действий, показывающий заголовок Optionsвсегда, независимо от того, какой из них выбран.Android: Показать счетчик на панели действий с фиксированным заголовком

В настоящий момент в верхнем поле отображается выбранный вариант, как только он выбран.

Как я мог достичь этого?

enter image description here

это мой код

 MenuItem menuItem = menu.findItem(R.id.actionbar_nextevents); 
     if (menuItem!=null){ 
      Spinner spinner = (Spinner) MenuItemCompat.getActionView(menuItem); 
      List<String> list = new ArrayList<String>(); 
      list.add("Option 1"); 
      list.add("Option 2"); 
      list.add("Option 3"); 
      spinner.setAdapter(new ArrayAdapter<String>(this, R.layout.listitem_nextevents, R.id.option, list)); 
     } 
+0

Переопределение onSpinnerItemSelected. При выборе элемента установите для заголовка Spinner значение «Option» –

+0

Итак, что случилось с вышеуказанным кодом? – Harry

ответ

0

Вы пробуете это:

MenuItem menuItem = menu.findItem(R.id.actionbar_nextevents); 
if (menuItem != null) { 
    Spinner spinner = (Spinner) MenuItemCompat.getActionView(menuItem); 
    List<String> list = new ArrayList<String>(); 
    list.add("Options "); 
    list.add("Option 1"); 
    list.add("Option 2"); 
    list.add("Option 3"); 
    spinner.setAdapter(new ArrayAdapter<String>(this, 
      R.layout.listitem_nextevents, R.id.option, list)); 
    spinner.setSelection(0); 
} 
0

Попробуйте следующий код

открытого menu.xml и вставьте ниже кода

<item 
     android:title="select city" 
     android:id="@+id/my_menu_spinner" 
     yourapp:actionViewClass="android.widget.Spinner" 
     yourapp:showAsAction="ifRoom"/> 

в своем классе активности переопределение метода onCreateOptionMenu() и написать ниже код

@Override 
    public boolean onCreateOptionsMenu(Menu menu) { 

     MenuInflater inflater = getMenuInflater(); 
     inflater.inflate(R.menu.main, menu); 
     spinner = (Spinner) menu.findItem(R.id.my_menu_spinner) 
       .getActionView(); // find the spinner 
      citieslist.add(cityName); 
     } 

     ArrayAdapter mSpinnerAdapter = new ArrayAdapter<String>(
       this.getSupportActionBar().getThemedContext(),       R.layout.spinner_item, citieslist); 
     mSpinnerAdapter 
       .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     spinner.setAdapter(mSpinnerAdapter); 
return true 

}

создать файл spinne_item.xml в макетах и ​​вставьте ниже код

<?xml version="1.0" encoding="utf-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:gravity="top" 
    android:singleLine="true" 
    android:textColor="#455560" /> 
0

Поздний ответ для тех, кто все еще борется!

Первый вариант вашего счетчика должен быть вашим названием! , тогда, когда вы обрабатываете каждый вариант, просто поместите эту строку в конец. spinner.setSelection(0); Это сохраняет титул первый вариант каждый раз, когда выбрана опция

пример:

switch (position) { 
       case 0: 
        //my other methods and... 

        spinner.setSelection(0); 
        break; 

       case 1: 
        //my other methods and... 

        spinner.setSelection(0); 
        break; 
       case 2: 
        //my other methods and... 

        spinner.setSelection(0); 
        break; 
Смежные вопросы