Android Listview行正在影响其他行

时间:2014-11-08 20:55:24

标签: listview android-listview android-arrayadapter

我正在运行一个奇怪的问题几天。用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;
    }
}

0 个答案:

没有答案