У меня есть ситуация, когда мне нужно добавить пункт меню в существующее (по умолчанию) контекстное меню TextEdit (в неактивном режиме)
Ниже приведен фрагмент кода, который я использую для достижения этой цели. Однако, это не показывает мне никакого контекстного меню.
/// Constructor
editText.setOnCreateContextMenuListener(Field1_Clicked);
editText.setLongClickable(true);
editText.setOnLongClickListener(Field_Clicked);
Я делаю это в конструкторе, потому что это не действие. Поэтому я не могу просто сказать «registerForContextMenu (textView)». Если я не в деятельности, я не могу переопределить 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;
}
Помощь любого рода будет оценена. Спасибо!