gpt4 book ai didi

android - 设置背景颜色的个性化 ListView 错误

转载 作者:太空狗 更新时间:2023-10-29 12:45:16 25 4
gpt4 key购买 nike

我的应用程序有问题:我使用带有个性化适配器的 ListView ,在这个适配器中,我想根据消息是否被读取来更改线条的颜色。

在方法GETVIEW中我控制了一个变量,如果它等于0我想改变背景颜色。

所有的作品和列表都按照我的意愿显示,

但是当有很多元素并且列表在任何方向(从上到下,反之亦然)滚动时,即使通过代码设置了另一种颜色,原始数据也会以相同的颜色显示。

有人遇到过同样的问题吗?你能给我一些建议吗?

这是我的适配器的代码:

public class LazyAdapterComunicazioni extends BaseAdapter {

private Activity activity;
private String[] id;
private String[] titolo;
private String[] data;
private String[] letto;
private static LayoutInflater inflater=null;
//public ImageLoader imageLoader;

public LazyAdapterComunicazioni(Activity a, String[] idCom, String[] titoloCom, String[] dataCom, String[]lettoCom) {
activity = a;
id = idCom;
titolo = titoloCom;
data = dataCom;
letto = lettoCom;
inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}

@Override
public int getCount() {
return id.length;
}

@Override
public Object getItem(int position) {
return position;
}

@Override
public long getItemId(int position) {
return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {

View vi = convertView;

if(convertView == null)
{
vi = inflater.inflate(R.layout.comunicazionicslist, null);
}

ContactsViewHolder viewHolder = new ContactsViewHolder();

//Settimane
viewHolder.txtTitolo=(TextView)vi.findViewById(R.id.comCS_Titolo);
viewHolder.txtTitolo.setText(titolo[position].toString());

//Data
viewHolder.txtData=(TextView)vi.findViewById(R.id.comCS_Data);
viewHolder.txtData.setText(data[position].toString());

//ID
viewHolder.txtID=(TextView)vi.findViewById(R.id.comCS_ID);
viewHolder.txtID.setText(id[position].toString());

//Connessianne e Apretura del DB
String read = letto[position].toString();

if (read.equals("0")) //DA LEGGERE
{
//LAYOUT
viewHolder.rel = (RelativeLayout)vi.findViewById(R.id.comCS_RIGA);
viewHolder.rel.setBackgroundResource(R.drawable.sfondorigacomcs);
viewHolder.txtTitolo.setTextColor(Color.WHITE);
}

return vi;
}

static class ContactsViewHolder {
TextView txtTitolo;
TextView txtData;
TextView txtID;
RelativeLayout rel;
}
}

和单行的xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:id="@+id/comCS_RIGA"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:background="#ffffff"
android:paddingTop="10dp"
android:paddingBottom="10dp"
>

<TextView
android:id="@+id/comCS_Data"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:textColor="#000000"
android:layout_alignParentLeft="true"
android:layout_marginLeft="16dp"
android:textSize="12sp"
/>

<TextView
android:id="@+id/comCS_ID"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/comCS_Data"
android:visibility="invisible"
/>

<TextView
android:id="@+id/comCS_Titolo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/comCS_Data"
android:layout_marginTop="2dp"
android:layout_marginLeft="16dp"
android:text=""
android:textColor="#357cbc"
android:textSize="18sp"
/>

<ImageView
android:id="@+id/feedbackCars_Positivo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/frecciacom"
android:contentDescription="@string/title_Comunicazioni"
android:layout_alignParentRight="true"
android:layout_marginTop="2dp"
android:layout_marginRight="16dp"
/>

</RelativeLayout>

最佳答案

这是一个常见的错误。 View 被回收,因此在任何情况下您都必须设置回默认值。

    if (read.equals("0")) //DA LEGGERE
{
//LAYOUT
viewHolder.rel = (RelativeLayout)vi.findViewById(R.id.comCS_RIGA);
viewHolder.rel.setBackgroundResource(R.drawable.sfondorigacomcs);
viewHolder.txtTitolo.setTextColor(Color.WHITE);
}
else {
viewHolder.rel.setBackgroundResource("you_defaulf_bg_res");
}

关于android - 设置背景颜色的个性化 ListView 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18986730/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com