0
我有一个类的行,它扩展RelativeLayout
并膨胀一些布局自我。 A CheckBox
检查状态监听器也被设置。ListView与自定义ArrayAdapter
public class LayersListRow extends RelativeLayout {
public LayersListRow (Context context, final GITuple tuple) {
super(context);
LayoutInflater.from(context).inflate(R.layout.layers_list_item, this, true);
...
CheckBox checkbox = (CheckBox)findViewById(R.id.layers_list_item_switch);
checkbox.setOnCheckedChangeListener(new OnCheckedChangeListener() {
public void onCheckedChanged (CompoundButton buttonView, boolean isChecked) {
...
}
});
}
...
}
我有一个自定义ArrayAdapter
,这是充满了这个类的一些对象。我也想用它们作为视图。
public class LayersAdapter extends ArrayAdapter<LayersListRow> {
@Override
public View getView (int position, View convertView, ViewGroup parent) {
return getItem(position);
}
public LayersAdapter (Context context, int resource, int textViewResourceId) {
super(context, resource, textViewResourceId);
}
}
但当我这个适配器设置为我ListView
的CheckBox
的监听器不起作用。但对于出现在向下滚动的项目,它工作正常。
如果我
if (null == convertView)
return getItem(position);
return convertedView;
然后在列表中的第听众的伟大工程中所有可见的物品代替return getItem(position);
在getView
方法,但是当我尝试滚动我(又是第一个)拿错物品,ListView
冻结,不回应。
为什么会发生这种情况,应该如何使其正常工作?
您是否介意发布适配器的整个代码? – Luksprog
@Luksprog它是我的'LayersAdapter'类的整个代码:) –
我对'getItem(position)'方法感兴趣。 – Luksprog