gpt4 book ai didi

android - 如何使用自定义适配器将数组中的值设置为 ListView 并为行赋予不同的颜色

转载 作者:太空狗 更新时间:2023-10-29 15:07:32 24 4
gpt4 key购买 nike

String[] values = new String[] { "Apple", "Banana", "Cola", "Dove", "Elephant", "Fan", "Grapes", "Horse" };
ArrayAdapter<String> adapter = new ArrayAdapter<String>((this, R.layout.row,R.id.textview1, values);
list.setAdapter(adapter);

(包含上述代码的类扩展了ListActivity)我想给不同的行不同的背景颜色(例如:背景颜色textview1 应该在位置 0 处为绿色,在位置 6 处为红色,在位置 7 处为蓝色)为此据说我需要使用自定义适配器,但我不知道如何设置这些特定值使用自定义适配器将苹果、香蕉、可乐等添加到 textview1。我的xml文件row.xml如下图

<TextView
android:layout_width="500dp"
android:layout_height="50dp"
android:text="New Text"
android:layout_alignParentTop="true"
android:id="@+id/ListItem"
android:background="@color/color3"
android:gravity="center|left"
android:paddingLeft="5dp"
android:textSize="20dp"
android:textColor="@color/color1" />

我不知道如何实现自定义适配器。谁能帮我将这些值设置为TextView 使用自定义适配器并为 TextView 设置不同的背景颜色?

最佳答案

首先在 row.xml 中给你的 TextView 一个 id(假设是 rowText)

您需要创建一个适配器,它将自身绑定(bind)到您的 ListView。适配器通常看起来像这样:

public class CustomListAdapter extends BaseAdapter {
String[] values = new String[] { "Apple", "Banana", "Cola", "Dove", "Elephant", "Fan", "Grapes", "Horse" };

public ThumbnailAdapter(MainActivity m) {
thumbnails = thumbs;
mInflater = LayoutInflater.from(m);
}

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

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

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

@Override
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
convertView = mInflater.inflate(R.layout.row, null);
holder = new ViewHolder();
holder.rowText = (TextView) convertView
.findViewById(R.id.rowText);

convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
//Set the text here!
holder.rowText.setText(values[position]);
//Set the color here!
holder.rowText.setBackgroundResource(R.color.green);

return convertView;
}

static class ViewHolder {
TextView rowText;
}
}

这对您来说只是一个开始。要更改颜色,您可以设置一组颜色并从位置中进行选择。希望能帮助到你! (我没有测试代码,但它应该大部分是正确的)

关于android - 如何使用自定义适配器将数组中的值设置为 ListView 并为行赋予不同的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20464664/

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