如何更改ListView中文本的颜色?

时间:2019-07-06 20:38:23

标签: android listview android-listview

我创建了一个适配器类,但是我不知道如何更改列表视图中每个项目的颜色。默认颜色是黑色,但我想将其更改为白色。

当我键入颜色时,在自动完成功能中我没有得到任何与颜色有关的信息。我不知道应该用XML还是Java进行更改。

<ListView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/list"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"/>

class SongAdaptor extends ArrayAdapter<Song> {

public SongAdaptor(Context context, ArrayList<Song> songs) {
    super(context, 0, songs);
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    View listItemView = convertView;
    if (listItemView == null) {
        listItemView = LayoutInflater.from(getContext()).inflate(
                R.layout.list_item, parent, false);
    }

我希望每个文本项的颜色都发白,但我得到的默认颜色是黑色。

1 个答案:

答案 0 :(得分:0)

您可以覆盖getView()方法来更改商品的颜色,如下所示:

private void setListView() {
arrayAdapter = new ArrayAdapter<String>(
                  this,android.R.layout.simple_list_item_1, answerList){

    //override getView to change the item text color
    @NonNull
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View view = super.getView(position, convertView, parent);
        TextView textView = view.findViewById(android.R.id.text1);
        /*YOUR CHOICE OF COLOR*/
        textView.setTextColor(getResources().getColor(R.color.secondaryTextColor));
        return view;
        }
    };
    listView.setAdapter(answersArayAdapter);
}