Android listview适配器…无需重新绘制
我的适配器中有以下代码:Android listview适配器…无需重新绘制,android,listview,android-listview,adapter,android-adapter,Android,Listview,Android Listview,Adapter,Android Adapter,我的适配器中有以下代码: public View getView(int position, View convertView, ViewGroup parent) { if (convertView==null) { LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); convertView
public View getView(int position, View convertView, ViewGroup parent)
{
if (convertView==null)
{
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.box_afisare, null);
}
final TextView titlu = (TextView) convertView.findViewById(R.id.titlu);
titlu.setText(Html.fromHtml(textt.get(position)));
titlu.setTextSize(TypedValue.COMPLEX_UNIT_SP,font);
final Integer pos = position;
titlu.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
if (main_contextt.selectie.contains(id_post.get(pos)))
{
Toast.makeText(mContext," REMOVE ",Toast.LENGTH_LONG).show();
titlu.setBackgroundColor(Color.parseColor("#0077CC"));
}
else
{
main_contextt.selectie.add(id_post.get(pos));
titlu.setBackgroundColor(Color.parseColor("#404040"));
}
}
});
return convertView;
}
我设法给选定的一行或多行着色。但当我滚动listview时,这些选定的行不再在手机的查看范围内……背景色消失了
仅当该行/多条线不在视图中时,此选项才禁用。我想适配器正在重新绘制
即使在滚动listview后,如何保持行/行上设置的颜色
感谢列表视图回收其子视图。因此,如果ListView中有20个项目,但屏幕上一次只能显示4个项目,ListView将只有4个子项目,它将循环显示所有20个项目。当一个视图从视图中滚出时,它会被循环使用,以便下一个视图进入视图。为了一个很好的解释 您需要做的是将颜色绑定到一些底层数据。然后您将使用类似的代码
titlu.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
// set data.get(pos).color
}
});
titlu.titlu.setBackgroundColor(data.get(pos).color);
…差不多吧