我有一个带有箭头按钮和删除图标的 Action 模式栏。 见下图
我试图在我的代码中识别何时按下箭头按钮但无法按下。我有以下代码
protected ActionMode.Callback mActionModeCallback = new ActionMode.Callback() {
@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
// Inflate a menu resource providing context menu items
MenuInflater inflater = mode.getMenuInflater();
inflater.inflate(R.menu.item_selected, menu);
context_menu = menu;
return true;
}
@Override
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
return false; // Return false if nothing is done
}
@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
Log.d("BACKPRESS", "BACKPRESSD");
return true;
case R.id.menu_action_delete:
return true;
default:
return false;
}
}
@Override
public void onDestroyActionMode(ActionMode mode) {
mActionMode = null;
}
};
当我按下后退箭头按钮时,它不执行 case 语句 在 onActionItemClicked 函数中
case android.R.id.home:
Log.d("BACKPRESS", "BACKPRESSD");
return true;
而是执行 onDestroyActionMode 函数。我想知道以下内容:
我如何编写代码来确定何时按下后退箭头?例如, 我想要类似 if(在操作模式栏上按下后退箭头)做某事
如果您注意到,默认情况下操作模式栏是黑色的,带有红色阴影线。如何更改操作模式栏和红线的颜色?
关于问题 2,我可以为操作模式栏设置不同颜色的不同 Activity ,还是我的所有 Activity 只能使用一种颜色?如果是,如何?
最佳答案
试试这段代码 ->
@Override
public boolean onOptionsItemSelected(MenuItem menuItem) {
switch (menuItem.getItemId()) {
case android.R.id.home:
Intent homeIntent = new Intent(this, HomeActivity.class);
startActivity(homeIntent);
}
return (super.onOptionsItemSelected(menuItem));
}
关于android - 如何知道在 Action 模式中何时按下后退箭头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53843927/