2014-04-19 13 views
5

w Android kiedy zdefiniować MENUITEM za onclick obsługi w xmlAndroid menuitem onclick wartość zwracana handler'a

<item 
    android:id="@+id/context_menu" 
    android:orderInCategory="100" 
    android:showAsAction="never" 
    android:title="@string/word_context_menu_title" 
    android:onClick="deleteItem"/> 

aw analogicznym aktywności I zdefiniować deleteItem funkcyjny z poniższym podpisem.

public boolean deleteItem(MenuItem item){ 
    logger.info("delete button clicked"); 
    return false; 
} 

Moje pytanie brzmi: co oznacza wartość zwracana? W takim przypadku powinienem zwrócić true iw takim przypadku powinienem zwrócić false?

Odpowiedz

4

Co wartość zwracana boolean oznacza od dokumentacji onMenuItemClick:

return true konsumować to kliknięcie i uniemożliwić innym wykonaniu.

tak podobne zachowanie do onOptionsItemSelected z odpowiedzią here. Jeśli rozumiem to poprawnie, oznacza to, że po pomyślnym rozpatrzeniu zdarzenia powinieneś zwrócić true.


Oto przykład.

Powiedz, że masz swoje deleteItem, a także onOptionsItemSelected.

public boolean deleteItem(MenuItem item){ 
    Log.v("test", "delete button clicked"); 
    return false; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) 
    { 
     case R.id.context_menu: 
      Log.v("test","onOptionsItemSelected"); 
      return true; 
     default: 
      return super.onOptionsItemSelected(item); 
    } 
} 

Jeśli wrócisz false w deleteItem widać, że jest on również obsługiwany w onOptionsItemSelected.

> przycisk usuwania kliknięciu
> onOptionsItemSelected

Jeśli wrócisz true w deleteItem to nie będą już obsługiwane w onOptionsItemSelected.

> usuń przycisk kliknięciu

Należy również pamiętać, że uchwyt deleteItem może być metodą void i automatycznie powrócić prawda jak na kodzie źródłowym here.

+0

Dzięki za wskazanie kodu. –