Постановка задачи Задача предельно простая. Нужен список элементов, каждая строка должна содержать название элемента и кнопку (кнопки) для управления этим элементом. В разных местах можно найти отрывочные данные по решению проблем, связанных с этой задачей. Собственно список проблем таков:
- При добавлении кнопки в строку перестает работать выделение стоки
- Кнопка содержит фон, которые может не вписываться в дизайн списка
- Обработка событий от кнопок
- Создать в папке drawable картинки для каждого состояния кнопки: button_pressed.png, button_focused.png, button_normal.png
- Создать в папке drawable специальны XML файл, который будет выбирать изображение для каждого состояния (селектор), возможное содержимое этого файла привожу ниже
xml version="1.0" encoding="utf-8"?>Более подробно можно почитать в документации по ImageButton. Обработка событий Здесь я использовал следующий подход. Каждый компонент типа View содержит атрибут android:onClick. Его значение - это строка, которая определяет метод в данном контексте (обычно текущая активность), который будет вызван при нажатии на этот компонент. Для кнопок этот подход тоже работает. Чтобы им воспользоваться необходимо:xmlns:android="http://schemas.android.com/apk/res/android"> - android:state_pressed="true" android:drawable="@drawable/button_pressed" />
- android:state_focused="true" android:drawable="@drawable/button_focused" />
- android:drawable="@drawable/button_normal" />
- В текущей Activity создать публичный метод с одним параметром типа View, например public void onMyButtonClick(View view) {...}
- Установить значение атрибута кнопки android:onClick в "onMyButtonClick"
private final class ItemRowBinder implements SimpleCursorAdapter.ViewBinder {
private static final String TAG = "ItemRowBinder";
@Override
public boolean setViewValue(View view, Cursor cursor, int columnIndex) {
switch (view.getId()) {
case R.id.ImageButtonDelete: {
view.setTag(Long.valueOf(cursor.getLong(columnIndex)));
return true;
}
}
return false;
}
}Конечно надо не забыть указать привязку поля с ID и компонента кнопки в конструкторе SimpleCursorAdapter.

0 comments:
Post a Comment