我有一个列表视图,当你按下它时会改变颜色,同时计时器开始滴答。
如果您在列表视图中按一行,则会更改为:
我有一个onItemClickListener附加到列表视图。我用持有人类回收我的行视图。
问题是,当我按下一行并在列表视图中进一步滚动某处时,突然另一行视图也改变颜色并开始计数。我知道这是因为意见得到回收。但是我不知道如何为背景颜色和计时器(在单独的线程中运行)解决这个问题
这是我的适配器的getView:
@Override
public View getView(final int position, View view, ViewGroup parent) {
ViewHolderItem viewHolder = null;
TextView txtTitle = null;
TextView timer = null;
if(view == null){
inflater = context.getLayoutInflater();
view = inflater.inflate(R.layout.list_single, parent, false);
txtTitle = (TextView) view.findViewById(R.id.txt);
timer = (TextView) view.findViewById(R.id.timer);
viewHolder = new ViewHolderItem();
viewHolder.textViewTimer = timer;
viewHolder.textViewOrderNo = txtTitle;
viewHolder.view = view;
view.setTag(viewHolder);
}
else{
viewHolder = (ViewHolderItem) view.getTag();
}
viewHolder.textViewOrderNo.setText(web[position]);
return view;
}
答案 0 :(得分:0)
您必须设置Flag
,Onclick
更改该标记,以便每次都可以检查并更改GetView()
中针对该特定位置的BackGround
if(checkcondition){
//change color
}else{
//change color
}
希望对你有帮助..
答案 1 :(得分:0)
存储每一行的状态,并根据需要更改getView()..类似于:
if(state == counting){
viewHolder.textViewOrderNo.setBackgroundColour(colorCounting); viewHolder.textViewOrderNo.setCount(计数); }
您还必须与计数器通信以获取计时器状态..