2015-11-19 1 views
1

У меня есть смешная проблема! Я хочу обработать кнопку действий дома, но MenuItem передан методу onOptionsItemSelected, когда я нажимаю кнопку дома не R.id.home (а не R.id.homeAsUp).Actionbar home/up button фактический id отличается от R.id.home

public boolean onOptionsItemSelected(MenuItem item) { 
    int id = item.getItemId(); 
    Log.v("1111", "MenuItem id: "+id); 
    Log.v("1111", "home id: "+R.id.home); 
    Log.v("1111", "homeAsUp id: "+R.id.homeAsUp); 
    ... 
    } 

Log:

11-19 23:58:56.433: V/1111(30059): MenuItem id: 16908332 
11-19 23:58:56.433: V/1111(30059): home id: 2131296256 
11-19 23:58:56.433: V/1111(30059): homeAsUp id: 2131296270 

Любые идеи?

ответ

3

Вам не хватает «android». Кнопка Up id: android.R.id.home Фактически, не R.id.home.

1

Вы обрабатываете домой кнопки, как

public boolean onOptionsItemSelected(MenuItem item) { 
    int id = item.getItemId(); 
    if(id==android.R.id.home){ 
     /*Do your code here*/ 
    } 
}