操作栏 home/up 按钮实际 ID 不同于 R.id.home

Actionbar home/up button actual id differs from R.id.home

我有一个荒谬的问题!我想处理操作主页按钮,但是当我点击主页按钮时传递给 onOptionsItemSelected 方法的 MenuItem 不是 R.id.home(也不是 R.id.homeAsUp)。

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

日志:

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

有什么想法吗?

您缺少“android”前缀。向上按钮的 id 实际上是 android.R.id.home,而不是 R.id.home

你像处理主页按钮一样

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