Как узнать, какая строка сетки была нажата для контекстного меню? - PullRequest
1 голос
/ 05 ноября 2010

У меня есть пользовательский макет, который похож на сетку.Я зарегистрировал это для contextmenu.Теперь, если я сделаю длинный щелчок по нему, я хотел бы знать позицию, на которой щелкнул пользователь.Я должен позволить моему собственному макету реализовать MenuInfo, верно?Но как насчет позиции щелчка?

1 Ответ

1 голос
/ 05 ноября 2010
@Override
public boolean onContextItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case DELETE_ID:
            AdapterView.AdapterContextMenuInfo info=
                (AdapterView.AdapterContextMenuInfo)item.getMenuInfo();

            delete(info.id);
            return(true);
    }

    return(super.onOptionsItemSelected(item));
}

В onContextItemSelected(), если контекстное меню предназначено для AdapterView (например, GridView), вы можете привести объект item.getMenuInfo() к объекту AdapterView.AdapterContextMenuInfo. Этот объект имеет поля id и position. id - это _ID, если вы используете CursorAdapter. position - это индекс вашего адаптера.

...