Условное действие в ViewBinder - PullRequest
0 голосов
/ 23 августа 2011

Я хочу отключить позицию для моего ListView (используя SimpleCursorAdapter с ViewBinder), но это не работает:

public boolean setViewValue(View view, final Cursor cursor, int columnIndex) {
        int viewId = view.getId();
        switch (viewId) {
          case R.id.my_view_status_value:

int viewVal = cursor.getInt(columnIndex);

if(viewVal == 0) {
   //disable this line item
   view.getRootView().findViewById(R.id.line_item).setEnabled(false);
} else {
   //enable
   view.getRootView().findViewById(R.id.line_item).setEnabled(true);
}

Когда я удаляю else, он случайным образом отключает их, когда существует if-else, все они включены. Что происходит?

1 Ответ

1 голос
/ 23 августа 2011

Кажется, что view.getRootView() возвращает самый верхний вид (вероятно, ListView), который содержит много строк, и все они имеют идентификатор R.id.line_item.Так что это может вернуть довольно случайный вид.Вы можете попробовать получить представление списка элементов, используя view.getParent()

...