Я считаю, что это очень распространенная задача:
GridView завышен с настраиваемыми макетами в качестве элементов. Каждый макет состоит из изображения и кнопки. Если пользователь нажимает на изображение, выполняется одно действие (например, изображение показано).
Если пользователь нажимает кнопку - другое действие (удаление элемента из GridView).
Первый реализован внутри onItemClick() AdapterView.OnItemClickListener.
Как реализовать последний?Android - GridView с двумя действиями за элемент
ответ
Самый простой способ, которым я могу сказать, что установить позицию TAG ваш взгляд, а затем в методе OnClick получить значение TAG и приведение его в целое. (по запросу @ sad1raf я добавил свой комментарий в качестве ответа!)
Вы можете создать пользовательский ArrayAdapter и поместить его в GridView. Передайте как контекст, так и класс, который вы хотите вызвать после удаления объекта. Самое главное - передать массив с данными, которые будут использоваться для заполнения всех ячеек (в вашем случае массив целых чисел). Тогда внутри
@Override
public View getView(int position, View convertView, ViewGroup parent)
вы должны:
- Открытое соединение с базой данных и получить данные
- Создать диалог, чтобы сделать более безопасным удаление данных
- Показать диалог по кнопке
Для второго шага вы можете сделать что-то вроде этого:
final AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle("Warning");
builder.setMessage("Are you sure you want to permanently delete the selected item?");
builder.setCancelable(true);
builder.setPositiveButton("Yes",new OnClickListener(){
public void onClick(DialogInterface dialog, int id){
dao.deleteEventData(item);
MyUtility.startActivityNoAnimsClearTop(context, classToLaunch);
}
});
builder.setNegativeButton("No", new OnClickListener(){
public void onClick(DialogInterface dialog, int id){
dialog.dismiss();
}
});
В моем коде я использую соединение с базой данных DAO, это хороший способ для управления данными, но вместо dao.deleteEventData (пункт), вы можете поместить каждый код, который нужен для удаления изображений. Затем, когда вы нажимаете кнопку, вы показываете диалог.
Button btnDeleteList = (Button)cell.findViewById(R.id.btnDeleteList);
btnDeleteList.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
builder.show();
}
});
- 1. Сбой приложения Android с двумя действиями
- 2. Уход за действиями в android
- 3. Переход на общий элемент Android между двумя действиями не работает
- 4. Бритва ввода с двумя действиями
- 5. Пользовательский переход (анимация) между двумя действиями Android
- 6. Отправка данных между двумя действиями Android Studio
- 7. form submit с двумя действиями
- 8. HTML форма с двумя действиями
- 9. Одна форма с двумя действиями
- 10. Android: pass filepath между двумя действиями
- 11. Невозможно обменять между двумя действиями на Android
- 12. Передача данных между двумя действиями в android
- 13. Android: Передача изображения между двумя действиями
- 14. Share Метод между двумя действиями (android)
- 15. android выбрать между двумя начальными действиями
- 16. Переключение флип-карт между двумя действиями Android
- 17. Android Gridview: Перетащите элемент
- 18. FLAG_ACTIVITY_REORDER_TO_FRONT между двумя действиями
- 19. Переключение между двумя действиями
- 20. одиночная кнопка с двумя рабочими действиями
- 21. виджет типа snackBar с двумя действиями
- 22. Android - Держите пользователя за регистрацию между действиями
- 23. Android: Как получить GridView с двумя адаптерами
- 24. Запустите нить за действиями в android
- 25. Анимация между двумя действиями
- 26. Анимация между двумя действиями
- 27. Одно действие с двумя действиями-преемниками
- 28. Передача сообщений между действиями Android?
- 29. Как перемещаться между двумя действиями с действием?
- 30. Проблема с разделяемым элементом между двумя действиями
Просьба указать свой код – Pragnani
Самый простой способ, который я могу сказать, это установить позицию в TAG вашего представления, а затем в методе onClick получить значение TAG и переведите его в целое число. –
Хорошо, позвольте мне перефразировать вопрос – sad1raf