Как создать динамическое контекстное меню в Android? - PullRequest
1 голос
/ 03 сентября 2010
@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 из моего адаптера массива, но я не уверен, как получить доступ к индексу моих адаптеров массива из этого метода.

Ответы [ 2 ]

5 голосов
/ 20 июня 2012

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

@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 голосов
/ 03 сентября 2010

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

...