我有一个实现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);
...
}