CheckBox не меняет состояние

1

У меня есть:

public class MyList extends ListActivity {
    SimpleAdapter simpleAdapter;

Связывание с ListView выполняется с помощью ViewBinder:

    simpleAdapter = new SimpleAdapter(this, getData(path),
            R.layout.menu_row, new String[] { 
        ..., "checked" }, new int[] {..., R.id.checkBox1 });

    SimpleAdapter.ViewBinder viewBinder = new SimpleAdapter.ViewBinder() {
        @Override
        public boolean setViewValue(View view, Object data,
                String textRepresentation) {
            if (view.getId() == R.id.checkBox1) {
                                CheckBox checkBox = (CheckBox) view;
                checkBox.setChecked(Boolean.parseBoolean((String) data));

Мой xml похож на этот, clickable и focusable помогает тому, что строка ведет себя как одна.

<CheckBox
    android:id="@+id/checkBox1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:focusable="false"
    android:clickable="false"
    android:focusableInTouchMode="false"
     />

У меня также есть:

protected void onListItemClick(ListView l, View v, int position, long id) {

который взаимодействует с событием click. До сих пор это хорошо работает, моя проблема в том, что когда я нажимаю на строку, CheckBox не меняет свое визуальное состояние. Что я могу сделать?

Теги:
android-viewbinder
android-listview

2 ответа

0
Лучший ответ

Поместите button.setChecked(true) в ваш onListItemClick (или код для переключения вперед и назад с помощью setChecked).

РЕДАКТИРОВАТЬ

Не поняли вашу проблему. Вы сказали адаптеру, что набор данных был изменен?

  • 0
    кто кнопка? то, что у меня есть, защищено void onListItemClick (ListView l, View v, int position, long id) {CheckBox checkbox = (CheckBox) v.findViewById (R.id.checkBox1); checkbox.setChecked (checkbox.isChecked (!)); но это не дает никакого эффекта
  • 1
    Извините, имел ввиду флажок. Можете ли вы подтвердить, что статус меняется, даже если на графике нет? Вы пытались notifyDatasetChanged (я думаю, что я понял это правильно, я: на моем телефоне и вдали от ресурсов)
Показать ещё 1 комментарий
1

Я думаю, что вы хотите заглянуть в CheckedTextView который показывает флажок, и когда элемент списка CheckedTextView установите флажок

  • 0
    нет, я не хочу мой макет намного сложнее и нет необходимости в серьезных изменениях. Мое чувство говорит, что есть только маленькая настройка, которая решает мою проблему

Ещё вопросы

Сообщество Overcoder
Наверх
Меню