ListView包含多个字符串。
适配器的资源是textview
view.appointmentTime.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
((TextView) parent.getChildAt(lastClicked)).setTextColor(Color.parseColor("#000000"));
((TextView) parent.getChildAt(lastClicked)).setTextSize(18f);
((TextView) view).setTextColor(Color.parseColor("#00BBE4"));
((TextView) view).setTextSize(22f);
lastClicked = position;
getBookAppointment().setApptTime((getLong_timings().get(position) / 1000));
}
});
我的初始适配器是:
public class AppointmentTimingAdapter extends ArrayAdapter { 上下文上下文;
public AppointmentTimingAdapter(Context context, int resource, List<AppointmentTime> objects) {
super(context, resource, objects);
this.context = context;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
return AppointmentTimeView.newInstance((LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE)
, parent, ScheduleView.getTimings().get(position));
}
}
答案 0 :(得分:1)
修改:不再像查看回收问题 - convertView
实施中的getView()
参数(潜在回收的视图)似乎被忽略了。
如果没有关于您所看到的症状的任何信息会让您认为存在错误,我会怀疑您已经被View回收了。
您在单击的视图上设置这些属性,然后滚动,突然另一个视图看起来已被点击,即使它没有被点击。该视图已被重复使用或回收。
您可以通过不直接在ListView中修改视图来避免这些错误。修改数据集/存储列表中的“选定”项并刷新ListView(adapter.notifyDataSetChanged()),并使用选定的项列表确定何时应用不同的样式。