5

Я пытаюсь реализовать раскрывающийся список в качестве навигации для панели действий в Android. Я вижу выпадающий список и элементы, но я не могу получить событие click.Android: панель действий Шерлока выпадает

Я не уверен, что я пропускаю, так как я после урока в http://developer.android.com/guide/topics/ui/actionbar.html

Это мой код:

public void onCreate(Bundle savedInstanceState) { 
     OnNavigationListener mOnNavigationListener; 
     super.onCreate(savedInstanceState); 
     // setContentView(R.layout.info_layout); 
     // getSupportActionBar().setHomeButtonEnabled(true); 
     getSupportActionBar().setDisplayShowTitleEnabled(false); 

     getSupportActionBar().setNavigationMode(getSupportActionBar().NAVIGATION_MODE_LIST); 
     SpinnerAdapter mSpinnerAdapter = ArrayAdapter.createFromResource(this, R.array.navigation_array, android.R.layout.simple_dropdown_item_1line); 
     mOnNavigationListener = new OnNavigationListener() { 
      public boolean onNavigationItemSelected(int itemPosition, long itemId) { 
       switch (itemPosition) { 
       case 1: 
        Intent i = new Intent(); 
        i.setClass(getApplicationContext(), ZoekAndBoekActivity.class); 
        break; 
       case 2: 
        break; 
       case 3: 
        break; 
       case 4: 
        break; 
       case 5: 
        break; 
       } 
       // return super.onOptionsItemSelected(itemPosition); 
       return true; 
      } 
     }; 
     getSupportActionBar().setListNavigationCallbacks(mSpinnerAdapter, mOnNavigationListener); 
    } 

Большое спасибо заранее!

ответ

4

Вы уверены, что вы не делаете кликов? Вы создаете намерение, но ничего не делаете с этим. Попробуйте что-то вроде этого:

switch (itemPosition) { 
    case 1: 
     Intent i = new Intent(); 
     i.setClass(getApplicationContext(), ZoekAndBoekActivity.class); 
     startActivity(i); 
     break; 
    ... 
} 

или добавить запись в журнал, чтобы убедиться:

public boolean onNavigationItemSelected(int itemPosition, long itemId) { 
    Log.d("SomeTag", "Get click event at position: " + itemPosition); 
    switch (itemPosition) { 
     ... 
    } 
} 

и увидеть в выводе LogCat для сообщения с «SomeTag» при нажатии на пункты.

+0

ничего не делает, даже не входит в onNavigationItemSelected – noloman

+2

@noloman Если ваше решение отличается от того, что было дано здесь, было бы полезно другим, если бы вы разместили его. –

+0

Как я могу получить элемент выбранной позиции? –

-1

Я думаю, что возвращение заявление должно быть ложным внутри корпуса выключателя, и ваш случай должен иметь скобки .. Надеюсь, что это помогает :)))

+1

Оператор case не нуждается в скобках, и каждый случай должен возвращать 'true'. –

Смежные вопросы