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);
…差不多吧