Как создать динамическое контекстное меню в Android?

1
@Override  
    public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {  

        super.onCreateContextMenu(menu, v, menuInfo);  
        menu.setHeaderTitle("Selection Options");  
        menu.add(0, v.getId(), 0, "Remove");  
    }  

Я хочу, чтобы в моем меню говорилось "Удалить AAPL"

Я бы получил строку AAPL из моего адаптера массива, но я не уверен, как я могу получить доступ к индексу адаптеров массива из этого метода.

Теги:
android-arrayadapter
listadapter
contextmenu

2 ответа

5

Пример, если вы используете listviews с пользовательским объектом:

@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
    super.onCreateContextMenu(menu, v, menuInfo);

    AdapterContextMenuInfo info = (AdapterContextMenuInfo) menuInfo;
    MyObject obj = (MyObject) myListView.getItemAtPosition(info.position);

    menu.setHeaderTitle("Selection Options");  
    menu.add(0, v.getId(), 0, "Remove " + obj.name); 
}
2

Ввести menuInfo в объект AdapterView.AdapterContextMenuInfo. Оттуда вы можете получить position и id элемента в ListView, который был длинным.

  • 0
    AdapterContextMenuInfo = (AdapterContextMenuInfo) menuInfo; // не могу быть решен ... можете ли вы показать мне, как правильно разыграть его?
  • 0
    @Seehan Alam: это не AdapterContextMenuInfo . Это AdapterView.AdapterContextMenuInfo . Посмотрите этот пример проекта: github.com/commonsguy/cw-android/tree/master/Database/Constants
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню