0
我在ViewBinder中有奇怪的行为。所有在TextView上都很好用。使用CheckBoxes(在我的代码中删除)和自定义窗口小部件progressChart时,当我向下滚动和/或向上滚动时,值不会存储在列表的正确位置。一切似乎都很随意。但是TextView总是正确的。 这里是我的代码:ViewBinder创建随机内容
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);
任何帮助,高度赞赏
我发现了一个类似的问题,但答案犯规适合我的代码。 Problems with the ViewBinder
它使用例如textView的文本。这意味着ViewBinder只会收敛一些用例。这使它非常弱 – user1324936
不是必需的。它正在处理数据源**中的所有内容**。您的复选框不是数据源的一部分。如果您将复选框状态置于您的数据源中(前段时间我为购物应用程序执行此操作),则它会从中读取/设置状态,您可以创建方法来切换支持适配器的数据中的复选框,然后通过查看器返回列表。大多数人不想这样做,所以他们添加一个数组来保存他们想要使用的额外项目的状态,并使用'getView'替代。 – Barak
你是什么意思的数据源,我如何把它放入数据源? – user1324936