Форум программистов, компьютерный форум, киберфорум
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Bolbine84455
4 / 4 / 2
Регистрация: 12.03.2014
Сообщений: 330
#1

Контекстное меню не работает - Программирование Android

17.12.2016, 10:10. Просмотров 235. Ответов 2
Метки нет (Все метки)

Доброго времени суток.
Я отбираю записи из базы и формирую список в ListView, насаживая на каждый элемент событие onClick, чтобы открывать запись.
Фрагмент кода ниже
Кликните здесь для просмотра всего текста

Java
1
2
3
4
5
6
7
8
9
10
@Override
    protected void onCreate(Bundle savedInstanceState) {
//...
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.custom_spinner_layout, listRecord);
        adapter.setDropDownViewResource(android.R.layout.simple_list_item_1);
        Singleton.getInstance().setAdapter(adapter); // (!!!)
        ListView listView = (ListView) findViewById(R.id.list_view);
        listView.setAdapter(adapter);
        listView.setOnItemClickListener(mMessageClickedHandler);
}


Следуя примерам из интернета написал следующее:
Кликните здесь для просмотра всего текста

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
public static final int CONTEXT_MENU_EDIT_ITEM = 101;
    public static final int CONTEXT_MENU_DELETE_ITEM = 102;
 
    @Override
    public void onCreateContextMenu(ContextMenu contextMenu, View v, ContextMenu.ContextMenuInfo menuInfo) {
        AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) menuInfo;
        String selectedWord = ((TextView) info.targetView).getText().toString();
        long selectedWordId = info.id;
 
        contextMenu.setHeaderTitle(selectedWord);
        contextMenu.add(0, CONTEXT_MENU_EDIT_ITEM, 0, "Редактировать");
        contextMenu.add(0, CONTEXT_MENU_DELETE_ITEM, 1, "Удалить");
    }
 
    @Override
    public boolean onContextItemSelected(MenuItem item)
    {
        CharSequence message;
        switch (item.getItemId())
        {
            case CONTEXT_MENU_EDIT_ITEM:
                message = "Выбран пункт Редактировать";
                break;
            case CONTEXT_MENU_DELETE_ITEM:
                message = "Выбран пункт Удалить";
                break;
            default:
                return super.onContextItemSelected(item);
        }
        Toast toast = Toast.makeText(this, message, Toast.LENGTH_SHORT);
        toast.setGravity(Gravity.CENTER, 0, 0);
        toast.show();
        return true;
    }


Затея была в том, чтобы помимо onCLick нацепить на эти элементы еще и OnItemLongClick с диалогом для удаления, но подход через onCreateContextMenu показался мне более простым и идеологически правильным.
Т.е. в конечном итоге я хочу добиться, чтобы при OnItemLongClick всплывал диалог со списком допустимых действий.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.12.2016, 10:10
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Контекстное меню не работает (Программирование Android):

Контекстное меню на ExpandableListView - Программирование Android
Здравствуйте! подскажите как правильно определить пункт ExpandableListView (группа или элемент группы) на котором было вызвано...

Контекстное меню в ListView - Программирование Android
Здравствуйте,выложите пожалуйста рабочий код контекстного меню для listview и напишите пожалуйста куда вставлять этот код.

ListView и контекстное меню - Программирование Android
Подскажите как сделать так, чтобы контекстное меню знало пункт listview из которого оно было вызвано? Пытался сохранить пункт в...

Контекстное меню вместо опционального - Программирование Android
Здравствуйте! Подскажите, возможно ли сделать так, чтобы при нажатии кнопки меню на телефоне, вместо опционального меню открывалось...

При долгом нажатии вывести контекстное меню - Программирование Android
Здравствуйте, подскажите, пожалуйста, как сделать так, чтобы при долгом нажатии на адресную строку, выводилось контекстное меню. Браузер...

Как создать контекстное меню. Например нажимая на richTextBox правой кнопкой мыши, мне бы предоставлялось контекстное меню - C#
Как создать контекстное меню. Например нажимая на richTextBox правой кнопкой мыши, мне бы предоставлялось контекстное меню???

2
fraley
106 / 106 / 40
Регистрация: 24.05.2015
Сообщений: 322
17.12.2016, 11:24 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Во-первых этот треш с присобачиванием листинера к каждому элементу...
Нужно к ListView присоединить листинер таким образом:
Java
1
2
3
4
5
6
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                //position - порядковый номер нажатого элемента
            }
        });
Во-вторых, по поводу контекстного меню - лень писать, вот первый же пример:
http://www.compiletimeerror.com/2013...h-example.html
Единственное, в registerForContextMenu прописать ListView.
1
Bolbine84455
17.12.2016, 11:59  [ТС]     Контекстное меню не работает
  #3

Не по теме:


Цитата Сообщение от fraley Посмотреть сообщение
Во-вторых, по поводу контекстного меню - лень писать, вот первый же пример:
http://www.compiletimeerror.com/2013...h-example.html
Единственное, в registerForContextMenu прописать ListView.
Спасибо. Забыл зарегистрировать ListView

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.12.2016, 11:59
Привет! Вот еще темы с ответами:

Не работает контекстное меню - C# WPF
Здравствуйте! Подскажите, почему когда я запускаю приложение компилляцией из студии - контекстное меню работает, но когда запускаю из...

На странице не работает контекстное меню - HTML, CSS
На странице не работает контекстное меню отключил уже все скрипты сss все равно не помогает Добавлено через 7 минут первый раз с...

.NET 4.x Как оно работает (контекстное меню)? - C#
Всем, добрый день, программисты. Очень рад общению с Вами:) Я новичок в Вашем деле... и хочу стать таким настоящим программистом как Вы...

Контекстное меню при нажатии по календарю работает, но число не выделяется - C#
Ребята что то никак не пойму... У меня выпадает контекстное меню при нажатии по календарю, но число не выделяется... В других...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru