gpt4 book ai didi

android - 在 ListView 中动态更改 TextView 字体颜色

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:25:37 25 4
gpt4 key购买 nike

我正在将 XML 文档绑定(bind)到自定义适配器。列表中的所有项目最初都具有白色字体颜色。 XML 文档中的一个节点有一个我正在检查的属性,如果设置了该属性,我想将 ListView 中该项目的字体颜色更改为较深的颜色。我的代码最初似乎可以工作,但如果我上下滚动列表,ListView 中应该保持白色的项目会自动变为深色,出于某种原因:

这是我的布局代码:

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/text"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:textSize="15dip"
android:textColor="#ffffff"
android:textStyle="bold"
android:padding="5px"
/>
</LinearLayout>

这是我的自定义适配器:

 private class CustomAdapter extends BaseAdapter 
{
private ArrayList<FilterItem> mData = new ArrayList<FilterItem>();
private LayoutInflater mInflater;

public CustomAdapter() {
mInflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}

public void addItem(FilterItem item) {
mData.add(item);
}

@Override
public int getCount() {
return mData.size();
}

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

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

@Override
public View getView(int position, View convertView, ViewGroup parent)
{
ViewHolder holder;
FilterItem item = (FilterItem)this.getItem(position);

if (convertView == null)
{

holder = new ViewHolder();

convertView = mInflater.inflate(R.layout.main, null);
holder.text = (TextView)convertView.findViewById(R.id.text);

convertView.setTag(holder);

} else {
holder = (ViewHolder)convertView.getTag();
}

TextView tvText = holder.text;

tvText.setText(item.getTitle());

if (item.Read())
{
tv.setTextColor(Color.Gray);
}

return(convertView);
}
}

最佳答案

ListView 重用 View ,正如您在 getView 中看到的那样,您获得了 convertView,而您只是将颜色从白色更改为灰色。您永远不会将颜色恢复为白色。我建议

if (item.Read()) {
tv.setTextColor(Color.Gray);
} else {
tv.setTextColor(Color.White);
}

关于android - 在 ListView 中动态更改 TextView 字体颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7136158/

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