Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
Muhammad97
10 / 10 / 1
Регистрация: 10.11.2013
Сообщений: 238
#1

Контекстное меню в ListView - Android

17.08.2014, 05:43. Просмотров 1453. Ответов 6
Метки нет (Все метки)

Здравствуйте,выложите пожалуйста рабочий код контекстного меню для listview и напишите пожалуйста куда вставлять этот код.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.08.2014, 05:43     Контекстное меню в ListView
Посмотрите здесь:

ListView, ToggleButton, SQLite, CursorAdapter. Как найти idItem в ListView, где была нажата ToggleButton? Android
Android Контекстное меню вместо опционального
Android ListView и контекстное меню
Android контекстное меню на ExpandableListView
Android ListView. После добавления кнопки перестал быть доступен сам ListView
Android Хочу сделать подписи к меню, меню у меня создано ListView, есть два массива, как их передать в адаптер?
Android При долгом нажатии вывести контекстное меню
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,070
17.08.2014, 12:51     Контекстное меню в ListView #2
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
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment, null);      
        listView = (ListView) view.findViewById(R.id.listView1);
        ...
        registerForContextMenu(listView);
        return view;
    }
 
    public void onCreateContextMenu(ContextMenu menu, View v,
            ContextMenuInfo menuInfo) {
        super.onCreateContextMenu(menu, v, menuInfo);
    }
 
    public boolean onContextItemSelected(MenuItem item) {
        Log.d("", "onContextItemSelected");
        if (item.getItemId() == ADD_REMOVE_FAVORITE) {          
            // получаем из пункта контекстного меню данные по пункту списка
            AdapterContextMenuInfo acmi = (AdapterContextMenuInfo) item.getMenuInfo();
            Log.d("", "" + acmi.id);
        }
        return super.onContextItemSelected(item);
    }
yura91
29 / 27 / 2
Регистрация: 23.10.2013
Сообщений: 2,235
17.08.2014, 13:12     Контекстное меню в ListView #3
а как привязать контекстное меню не ко всему ListView а только к отдельному пункту?
Muhammad97
10 / 10 / 1
Регистрация: 10.11.2013
Сообщений: 238
17.08.2014, 14:11  [ТС]     Контекстное меню в ListView #4
Появилась новая проблема. Я делаю программу заметок. Когда я удерживаю палец на пункте списка появляется контекстное меню, я выбираю пункт удалить, но почему-то он не удаляется корректно.

Вот код:

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
[@Override
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo)
    {
        getMenuInflater().inflate(R.menu.list_item_context_menu , menu);
        super.onCreateContextMenu(menu, v, menuInfo);
    }
    @Override 
    public boolean onContextItemSelected(MenuItem item) { 
    AdapterContextMenuInfo info = (AdapterContextMenuInfo) item .getMenuInfo();
    switch (item.getItemId()) { 
 
        case R.id.delete_item: 
 
            db.delete("mytable", "id = "+ info.position, null); //по идее  должна удаляться из базы данных 
            notes_array.removeAll(notes_array); //очищаем коллекцию
            arrayfromtable(); //добавляем в коллекцию элементы из базы данных
            lvAdapter.notifyDataSetChanged(); //обновляем listview
            Toast.makeText(MainActivity.this, "Заметка удалена " + info.position, Toast.LENGTH_LONG).show();
    return true; 
        case R.id.edit_item: 
            
            return true;
    default:
    return super.onContextItemSelected(item); }
        }
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public void arrayfromtable(){
        db = dbHelper.getWritableDatabase();
        
        String orderBy = shared_preferences.getString("orderBy", "last_date");
        c = db.query("mytable", null, null, null, null, null, orderBy);
 
        if (c.moveToFirst()) {
 
            int title_index = c.getColumnIndex("title");
            int id_index = c.getColumnIndex("id");
 
            do {
                notes_array.add(c.getString(title_index)); //заполняем коллекцию
                notes_id_array.add(c.getInt(id_index));
            } while (c.moveToNext());
        } else{
 
            c.close();
        }
    }
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,070
17.08.2014, 20:33     Контекстное меню в ListView #5
Вот здесь аналогичная проблема, Чтение данных из бд в listview
yura91
29 / 27 / 2
Регистрация: 23.10.2013
Сообщений: 2,235
17.08.2014, 20:44     Контекстное меню в ListView #6
а можно привязать контекстное меню именно к определенному пункту ListView??для этого нужно использовать id пункта ListView или как можете привести фрагмент кода?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.08.2014, 22:27     Контекстное меню в ListView
Еще ссылки по теме:

Копирование данных из 1 listView во 2 listView Android
Android Выпадающее меню для каждого пункта ListView
Как реализовать трехуровневое меню в ListView? Android
Данные из SQlite в ListView, обработка события ListView Android
Android Контекстное меню не работает

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

Или воспользуйтесь поиском по форуму:
Yushka
4 / 4 / 1
Регистрация: 24.07.2013
Сообщений: 80
17.08.2014, 22:27     Контекстное меню в ListView #7
yura91, вроде по ссылке сообщения Rube есть такой фрагмент.
Yandex
Объявления
17.08.2014, 22:27     Контекстное меню в ListView
Ответ Создать тему
Опции темы

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