Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
Muhammad97
10 / 10 / 2
Регистрация: 10.11.2013
Сообщений: 238
1

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

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

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

ListView и контекстное меню
Подскажите как сделать так, чтобы контекстное меню знало пункт listview из...

Контекстное меню RecyclerView
Здравствуйте! Возникла задача создать контекстное меню для recyclerView, при...

Контекстное меню не работает
Доброго времени суток. Я отбираю записи из базы и формирую список в ListView,...

Контекстное меню на ExpandableListView
Здравствуйте! подскажите как правильно определить пункт ExpandableListView...

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

6
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,074
17.08.2014, 12:51 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);
    }
0
yura91
1 / 25 / 2
Регистрация: 23.10.2013
Сообщений: 2,326
17.08.2014, 13:12 3
а как привязать контекстное меню не ко всему ListView а только к отдельному пункту?
0
Muhammad97
10 / 10 / 2
Регистрация: 10.11.2013
Сообщений: 238
17.08.2014, 14:11  [ТС] 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();
        }
    }
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,074
17.08.2014, 20:33 5
Вот здесь аналогичная проблема, Чтение данных из бд в listview
0
yura91
1 / 25 / 2
Регистрация: 23.10.2013
Сообщений: 2,326
17.08.2014, 20:44 6
а можно привязать контекстное меню именно к определенному пункту ListView??для этого нужно использовать id пункта ListView или как можете привести фрагмент кода?
0
Yushka
4 / 4 / 0
Регистрация: 24.07.2013
Сообщений: 80
17.08.2014, 22:27 7
yura91, вроде по ссылке сообщения Rube есть такой фрагмент.
0
17.08.2014, 22:27
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.08.2014, 22:27

Хочу сделать подписи к меню, меню у меня создано ListView, есть два массива, как их передать в адаптер?
public class MainMenu extends ListActivity { public void onCreate(Bundle...

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

Как реализовать трехуровневое меню в ListView?
Здравствуйте!Как вообще реализуются такие вещи в приложениях?Есть список меню...


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

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

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