Как получить вид, который инициировал показ контекстного меню? - PullRequest
0 голосов
/ 14 июня 2011

У меня есть ListView, я регистрируюсь для прослушивания контекстного меню.После этого я получил 3 элемента в списке A, B и C. Затем, когда я долго нажимаю на некоторые из них, отображается контекстное меню, но как я могу узнать, был ли это A, B или, возможно, C?Как я могу узнать, какой элемент был нажат?

Ответы [ 2 ]

1 голос
/ 14 июня 2011

вы должны использовать какой-то список для заполнения ListView ... Затем используйте следующее:

@Override
public boolean onContextItemSelected(MenuItem item)
{
    AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item
            .getMenuInfo();
    int temp = info.position;


    //temp is the index of your list.. simply use this:
    String item = list.get(temp);

    return true;
}

Надеюсь, это поможет

UPDATE ::

Чтобы проверить, какой элемент был нажат и какое меню отображать, см. Следующее:

@Override
public void onCreateContextMenu(ContextMenu menu, View v,
        ContextMenuInfo menuInfo)
{
    if (v.getId() == your listview id)
    {
        AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) menuInfo;

        //Now simply use info.position to get the string from your list. use
        // if else statements and use menu.add(String) to add menu items....           
    }
0 голосов
/ 14 июня 2011

Здесь несколько примеров работы с ContextMenu, вам просто нужно переопределить onContextItemSelected(MenuItem item)

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