我正在运行一个奇怪的问题几天。用Google搜索并搜索堆栈溢出。但我仍然不知道它出了什么问题。 请帮我解决这个问题。
上下文带自定义适配器的Android ListView行为不端
背景每行都有一个包含两个项目(TextView和ImageView)的列表视图。我想在点击行时更改textview的背景颜色。
问题点击行也会改变另一行的背景颜色。
我的分析在我的屏幕中,有7行(十分之一)处于可见状态。当我点击第一行时,它会改变两行的颜色。第1行和第8行。似乎每隔7行再次从1开始计算它。真的不知道发生了什么。这是代码。
自定义适配器
public class CustomAdapter1 extends ArrayAdapter<BOQuestion> {
int layoutResourceID;
Context context;
List<BOQuestion> allQuestion;
public CustomAdapter1(Context context, int resource,
List<BOQuestion> allQuestion) {
super(context, resource, allQuestion);
layoutResourceID = resource;
this.context = context;
this.allQuestion = allQuestion;
}
class ViewHolder {
public TextView tvQuestion;
public ImageView ivMore;
}
@Override
public BOQuestion getItem(int position) {
return allQuestion.get(position);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final ViewHolder holder;
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(layoutResourceID, parent, false);
holder = new ViewHolder();
holder.tvQuestion = (TextView) convertView
.findViewById(R.id.tvQuestion);
holder.ivMore = (ImageView) convertView.findViewById(R.id.i_more);
holder.tvQuestion.setTag(position);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
BOQuestion oneQuestion = getItem(position);
holder.tvQuestion.setText(oneQuestion.getQuestion());
convertView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
holder.tvQuestion.setBackgroundColor(R.color.light_gray);
}
});
return convertView;
}
}