2012-05-24 11 views
5

Próbuję zaimplementować rozwijaną listę jako nawigację dla paska działań w systemie Android. Widzę listę rozwijaną i elementy, ale nie mogę uzyskać kliknięcia zdarzenia.Android: pasek rozwijania akcji Sherlocka

Nie jestem pewien, co mi brakuje, ponieważ byłem po tutorialu w http://developer.android.com/guide/topics/ui/actionbar.html

To jest mój kod:

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); 
    } 

dziękuję z góry!

Odpowiedz

4

Czy jesteś pewien, że nie dostałeś zdarzeń kliknięcia? Tworzysz intencje, ale nic z tym nie robisz. Spróbuj czegoś takiego:

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

lub dodać pisanie zalogować aby mieć pewność:

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

i zobaczyć na wyjściu logcat dla wiadomości z „SomeTag” po kliknięciu na przedmioty.

+0

nie robi nic, nawet nie wchodzi w onNavigationItemSelected – noloman

+2

@noloman Jeśli twoje rozwiązanie różni się od podanego tutaj, byłoby pomocne innym, jeśli je opublikowałeś. –

+0

Jak mogę uzyskać pozycję o wybranej pozycji? –

-1

myślę, że musi być instrukcja return false wewnątrz obudowy przełącznika, a sprawa musi mieć wsporniki .. Mam nadzieję, że to pomaga :)))

+1

Oświadczenie sprawy nie wymaga nawiasów, a każdy przypadek musi zwracać wartość "prawda". –

Powiązane problemy