我在這裏非常困惑。我在創建活動時填充了一次ArrayAdapter。 它充滿了簡單的物體。在對象的參數中,有一個布爾值用於適配器的getView()方法。這是有關的部分:ArrayAdapter在滾動時丟失了一些信息
MedicalExamination object = getItem(position); //object is acquired at the begining of getView()
if (!object.isResultAvalible())
viewHolder.attachment.setVisibility(View.GONE);
當我上下滾動列表幾次,resultAvalible布爾開始更改(?!)。沒有關於對象的其他信息發生變化,我在列表單元格中的TextView上顯示了一些字符串。 List保持原樣......除了這個布爾變量,它使我的ImageView(附件)消失。
我的bollean param是私有的,它甚至沒有設置方法。只有它的beeing集合在構造函數中。
我不知道發生了什麼,請在這方面需要一些幫助。
我的自定義適配器代碼由於請求:
private class ExaminationsAdapter extends ArrayAdapter<MedicalExamination> {
private int resource;
public ExaminationsAdapter(Context context,
List<MedicalExamination> objects) {
super(context, R.layout.examinations_list_item, objects);
resource = R.layout.examinations_list_item;
}
class ViewHolder {
public TextView examinationsNames;
public TextView date;
public ImageView attachment;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView;
ViewHolder viewHolder;
MedicalExamination object = getItem(position);
if (view == null) {
LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(resource, null, true);
viewHolder = new ViewHolder();
viewHolder.examinationsNames = (TextView) view.findViewById(R.id.examinations_item_title);
viewHolder.date = (TextView) view.findViewById(R.id.examinations_item_date);
viewHolder.attachment = (ImageView) view.findViewById(R.id.examinations_item_attachment);
view.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) view.getTag();
}
if (object == null) {
return view;
}
viewHolder.examinationsNames.setText(object.getExaminationsNames());
viewHolder.date.setText(object.getDate());
if (!object.isResultAvalible())
viewHolder.attachment.setVisibility(View.GONE);
setOnListTouchListener(view);
return view;
}
}
您是否創建了自定義適配器?添加一些你寫的適配器的代碼。 – GamDroid
發佈一些代碼。 – Atrix1987
我會盡快發佈我的自定義適配器代碼。我只是將其去掉,所以它不會太長 –