Android: ContextMenu не отображается - PullRequest
1 голос
/ 27 августа 2011

В моем приложении у меня есть ListView в моем основном макете.В соответствующей операции у меня есть следующее в моем onCreate:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    app = (MyTallyKeeperApplication) getApplication();
    adapter = new TallyItemListAdapter(this, app.getTallyItems());
    setListAdapter(adapter);
    registerForContextMenu(getListView());
}

Каждый элемент в ListView имеет тип TallyItemView, унаследованный от LinearLayout.Код, который я использовал для раздувания контекстного меню:

    @Override
public void onCreateContextMenu(ContextMenu menu, View v,
        ContextMenuInfo menuInfo) {
    super.onCreateContextMenu(menu, v, menuInfo);
    Log.i(MyTallyKeeperMain.class.getSimpleName(), "onCreateContextMenu");
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.item_menu, menu);
}

Теоретически, когда вы долго нажимаете на элемент, вы видите контекстное меню, которое дает вам возможность редактировать этот элемент или удалить его.Но когда я долго нажимаю на элемент, ничего не отображается.Любые идеи относительно того, как я могу это исправить?

Ответы [ 2 ]

8 голосов
/ 25 января 2012

Это происходит, если список содержит фокусируемые элементы (флажок и т. Д.). В макет строки списка включите это для фокусируемых компонентов.

0 голосов
/ 27 августа 2011

Попробуйте сделать super.onCreateContextMenu(menu, v, menuInfo); последним, а не первым. Вот пример проекта , показывающий использование контекстного меню с ListView.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...