为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);
}
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);
}
相关文章推荐
- Toolbar动态设置menu菜单,标题居中,menu和返回键点击事件
- 设置UITableView背景透明/监听cell左边的删除按钮的点击事件
- 解决 android设置软键盘搜索键以及监听搜索键点击时发生两次事件的问题
- 高德地图设置的onMarkerClick点击监听事件返回值
- android 为TextView的部分文字设置超链接样式并监听点击事件
- AndroidStudio Toolbar 滑动隐藏以及返回按钮点击事件
- iOS 为UIView设置点击监听事件
- android设置软键盘搜索键以及监听搜索键点击时发生两次事件的问题解决
- android设置软键盘搜索键以及监听搜索键点击事件
- android设置软键盘搜索键以及监听搜索键点击事件
- Android 设置软键盘搜索键以及监听搜索键点击事件
- AlertDialog中使用自定义View,view中的Button如何设置点击事件监听
- android设置软键盘搜索键以及监听搜索键点击时发生两次事件的问题解决
- 设置监听class改变事件,由原来的设置单个按钮点击触发方法onclick=“方法()”改为addEventListener
- android设置软键盘搜索键以及监听搜索键点击时发生两次事件的问题解决
- 解决 android设置软键盘搜索键以及监听搜索键点击时发生两次事件的问题
- android 为TextView的部分文字设置超链接样式并监听点击事件
- 为 TextView 的部分文字设置超链接样式并监听点击事件
- Android 的toolbar设置返回事件
- RecyclerView的Item设置点击监听事件