我有一种情况,我必须在TextEdit的现有(默认)上下文菜单中添加一个menuitem(在非活动中)
以下是我用来实现此目的的代码片段。但是,这并没有向我显示任何上下文菜单。
/// Constructor
editText.setOnCreateContextMenuListener(Field1_Clicked);
editText.setLongClickable(true);
editText.setOnLongClickListener(Field_Clicked);
我在构造函数中这样做,因为这不是一个Activity。所以,我不能只说“registerForContextMenu(textView)”。如果我不在Activity中,我不能覆盖onContextItemSelected()。在这种情况下,如何收听单击哪个菜单项?
/// OnCreateContextMenuListener
View.OnCreateContextMenuListener Field1_Clicked = new View.OnCreateContextMenuListener() {
public void onCreateContextMenu(ContextMenu menu, View view, ContextMenuInfo menuInfo) {
Log.d("Test", "Creating context menu");
menu.add(Menu.NONE, Menu.FIRST + 1, Menu.NONE, "New option");
}
};
永远不会被召唤。我没有在LogCat中看到日志消息。
/// OnLongClickListener
OnLongClickListener Field_Clicked = new OnLongClickListener() {
public boolean onLongClick(View v) {
showContextMenu();
return true;
}
};
public boolean onContextItemSelected(MenuItem item) {
if(item.getTitle().equals("New option")) {
// Do something();
}
return false;
}
任何形式的帮助将不胜感激。谢谢!