android - 如何从 EditText 禁用仅剪切选项?
问题描述
我有两个用于用户名和密码的 EditText。第一个 UserName EditText 将是 Visible。它将检查 Valid UserName。然后,Password EditText 将可见。我希望用户复制用户名但不想剪切。如何禁用剪切选项。但下面的代码禁用所有选项。代码 :
@Override
public boolean onCreateActionMode(ActionMode actionMode, Menu menu) {
return false;
}
@Override
public boolean onPrepareActionMode(ActionMode actionMode, Menu menu) {
return false;
}
@Override
public boolean onActionItemClicked(ActionMode actionMode, MenuItem menuItem) {
return false;
}
@Override
public void onDestroyActionMode(ActionMode actionMode) {
}
});
解决方案
首先设置一个customSelectionActionModeCallback。您可以通过它的 id 识别 cut 选项:android.R.id.cut
因此,您在ActionMode.Callback的onCreateActionMode中的代码如下所示:
public boolean onCreateActionMode(ActionMode actionMode, Menu menu) {
MenuItem menuItem = menu.findItem(android.R.id.cut);
if (menuItem != null) {
menuItem.setVisible(false);
}
return true;
}
或者您甚至可以使用menu.removeItem(android.R.id.cut)将其删除。
还要对 menu.findItem(android.R.id.cut) 进行空检查,因为它在调用 setVisible 时可能会返回 null。
推荐阅读
- javascript - 在 Javascript 上比较并获取对象的一些值数组
- reactjs - 如何将列表“键”值作为嵌套组件中的道具传递?
- python - 使用curve_fit拟合列表中2个变量的数据
- vue.js - 创建一个简单的 VUE.JS 应用程序
- ios - 使用 UIViewPropertyAnimator 同步动画 CALayer 属性和 UIView
- sql - PLS-00103:遇到符号“SELECT”pl/sql 错误
- python - (Tkinter) 为什么 itemconfig 不改变我的对象的颜色?
- reactjs - 把所有东西都变成一个组件有什么害处吗?
- javascript - 在 es6 中使用 rollup.js
- java - 我无法从我的 java 生产者那里向我的 kafka 主题生成消息