您的位置:首页 > 其它

为Toolbar左上角的返回箭头设置点击监听事件

2016-10-24 19:30 489 查看
使用Toolbar一定要保证你当前操作的Activity继承自ActionBarActivity,然后在代码中设置支持

Toolbar,并且设置home键为可用状态

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);

之后还要重写onOptionsItemSelected(MenuItem item)方法 。在Toolbar上的左上角的返回箭头的键值为Android.R.id.home,切记为Android.R.id.home,而不是R.id.home,否则可能监听不到左上角监听的点击事件
代码如下 @Override
public boolean onOptionsItemSelected(MenuItem item) {
if(item.getItemId()==android.R.id.home){
if(flag){
new SweetAlertDialog(this,SweetAlertDialog.ERROR_TYPE)
.setTitleText("请认真学习!!!")
.setContentText("学习计划还未完成,请放下手机!!")
.show();

}else {
if(vibrator!=null){
vibrator.cancel();
}
finish();

}
return true;
}
return super.onOptionsItemSelected(item);
}

顺便提一下,在activity中监听系统实体按键的返回是重写onKeyDown(int keyCode, KeyEvent event)方法,返回按键的监听如下

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode==KeyEvent.KEYCODE_BACK){

//未完成学习计划的逻辑
if(flag){
new SweetAlertDialog(this,SweetAlertDialog.ERROR_TYPE)
.setTitleText("请认真学习!!!")
.setContentText("学习计划还未完成,请放下手机!!")
.show();

}else {
finish();
if(vibrator!=null){
vibrator.cancel();
}
}

return true;
}

return super.onKeyDown(keyCode, event);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐