我有一个实现OnClickListener的活动,我正在处理onclick事件,如下面的代码:
void onClick(View v){ final int id = v.getId(); switch(id){ case R.id.xxx: break; } }
现在我也有一个工具栏,所以我也想以这种方式处理工具栏导航按钮点击事件:
toolbar.setNavigationOnClickListener(this);
但我不知道工具栏导航按钮的ID.我怎么才能得到它?
解决方法
如果工具栏被用作ActionBar,则视图ID将是android.R.id.home,您将使用onOptionsItemSelected(…)来知道何时按下它.
如果它没有被用作ActionBar,则视图id为-1,没有定义相应的id资源.
这意味着您必须使用setNavigationOnClickListener(),但是在以下两种方法之一中:
之一:
toolbar.setNavigationOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { ... } });
要么
private View.OnClickListener homeClickListener = new View.OnClickListener() { @Override public void onClick(View view) { ... } }; @Override protected void onCreate(...) { ... toolbar.setNavigationOnClickListener(homeClickListener); ... }