ListView
带有扩展的自定义适配器
ArrayAdapter
,我的ListView
5
它可以容纳不同类型的物品,这就是为什么我使用
定制
正如你所看到的,我正在点击我的
Checkbox
和
Modal
项目在开始时没有任何问题,但一旦我向下滚动并备份,它们就不再点击了!这是我面临的一个非常奇怪的错误。这里是我如何做我的适配器。
这是我的适配器类代码。它相当紧凑。
public class SettingAdapter extends ArrayAdapter<Setting> {
private List<Setting> settings;
public SettingAdapter(Context context) {
super(context, 0);
setSettings(new ArrayList<>());
}
public SettingAdapter(Context context, List<Setting> settings) {
super(context, 0);
setSettings(settings);
}
public void setSettings(List<Setting> settings) {
this.settings = settings;
clear();
addAll(settings);
notifyDataSetChanged();
}
@Override
public int getViewTypeCount() {
return 4;
}
@Override
public Setting getItem(int i) {
return settings.get(i);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
return Objects.requireNonNull(getItem(position)).getView(getContext());
}
}
我有一个
abstract
Setting
我的
列表视图
项将扩展该类并实现
getView()
诸如此类。
public class Summary extends Setting {
private View view;
public Summary(String name) {
super(name);
}
public int getType() {
return SettingType.SUMMARY;
}
@Override
public View getView(Context context) {
if(view == null) {
view = //Load the view here
}
return view;
}
}
我也在挽救我的生命
View
以后的参考资料,我不确定我在这里做错了什么,有人能指导我如何调试或修复它吗?已经花了10多个小时仍然没有成功。