当用户长按任何编辑文本时,是否可以在项目列表中添加内容? (剪切,复制粘贴,选择文本,全选,输入法)我想在此菜单中添加另一个选项,但无法弄明白。
这个问题有here的副本,第一个答案的最后一条评论说'可能,但不是很漂亮'。然后线程就死了。
我真的很想看到任何有用的例子,肮脏与否:)
答案 0 :(得分:3)
只有EditText在您的活动中时,才能在现有的edittext上下文菜单中添加更多菜单项。这可以通过onCreateContextMenu()
完成。
如果您的活动中没有EditText,则无法进行。
//将项目添加到菜单
EditText UserNameEditText = (EditText)findViewById(R.id.usernameEdittext);
registerForContextMenu(UserNameEditText);
//覆盖上下文菜单
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo)
{
super.onCreateContextMenu(menu, v, menuInfo);
if (v.getId()==R.id.usernameEdittext)
{
menu.add(0, 1, 0, "Fetch New Username");
menu.add(0, 2, 0, "Check For Duplicate");
}
}
如果未调用上下文菜单,则您的edittext不在您的活动中。
答案 1 :(得分:2)
是否可以在用户长按任何编辑文本时显示的项目列表中添加内容?
如果EditText
在您的活动中,您可以通过onCreateContextMenu()
完成此操作。
如果EditText
不在你的活动中,那么没有。
这里有一个重复的问题,第一个答案的最后一个评论说它可能,但不是很漂亮。然后线程就死了。
首先,这篇文章已有两年了,这在Android年几乎是永远的。
其次,我相当肯定Haseman先生的评估不正确。
答案 2 :(得分:2)
两者都是的!
首先,您需要创建一个实现OnCreateContextMenuListener的类,
public class CMenu implements OnCreateContextMenuListener {
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
//Do Something , Like:
menu.add(0, 1, 0, "copy");
menu.add(0, 2, 0, "paste");
}
}
然后
editText.setOnCreateContextMenuListener(cMenu);
现在好了〜