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