ViewBinder создает случайный контент
У меня странное поведение в ViewBinder. Все хорошо работает на TextViews. С флажками (удаленными в моем коде) и пользовательскими виджетами progressChart значения не сохраняются в правильном положении списка, когда я прокручиваю вниз и / или вверх снова. Все кажется очень случайным. Но TextViews всегда верны. Вот мой код:
SimpleAdapter.ViewBinder viewBinder = new SimpleAdapter.ViewBinder() {
@Override
public boolean setViewValue(View view, Object data,
String textRepresentation) {
if (view.getId() == R.id.progress) {
ProgressChart progressChart = (ProgressChart) view;
progressChart.setVisibility(ImageButton.GONE);
} else {
if (x.substring(0, 1).equals("1")) {
int theProgress = Integer.parseInt(x.substring(1));
progressChart.setProgressDarkRed(theProgress);
}
}
if (view.getId() == R.id.textView1) {
TextView textView = (TextView) view;
textView.setText((String) data);
}
return true;
}
};
simpleAdapter.setViewBinder(viewBinder);
setListAdapter(simpleAdapter);
Любая помощь высоко ценится
Я нашел похожую проблему, но ответ не соответствует моему коду. Проблемы с ViewBinder
1 ответ
Это из-за переработки отходов.
Вам необходимо создать объект для хранения статуса ваших флажков и настроить свои представления из этого в вашем адаптере.
Я не думаю, что это может быть сделано в видоискателе, поскольку позиция не передается ему (но, честно говоря, я никогда не пробовал)..
Вам, вероятно, придется сделать это в getView
,
Вот ссылка на мой предыдущий ответ, где я показываю, как это сделать с помощью SimpleCursorAdapter (его также можно изменить, чтобы применить к адаптеру массива). ТАК Ответ