文本颜色未在ListView中更新

时间:2019-05-28 11:53:02

标签: android listview

我正在构建一个Android应用程序,我需要更改ListView中所有单元格的文本颜色。

这是我用来填充ListView并将其与Activity文件连接的代码:

protected void onCreate(Bundle savedInstanceState) {
        ...

        // Create a temp array.
        ListView lv = (ListView) findViewById(R.id.gamesList);
        displayGames = new ArrayList<String>();

        // Populates ListView
        updateList();

        // Create Array Adapter
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,displayGames);
        lv.setAdapter(adapter);
    }

我的问题是,即使我在XML文件上专门更改了文本,单元格中TextView的文本也不具有正确的颜色。请参见下面的代码:

这是用于创建ListView的XML代码:

<ListView
        android:id="@+id/gamesList"
        android:layout_width="396dp"
        android:layout_height="342dp"
        android:layout_marginStart="9dp"
        android:layout_marginEnd="10dp"
        app:layout_constraintBottom_toTopOf="@+id/linearLayout6"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/linearLayout5"
        app:layout_constraintVertical_bias="0.854" />

我在名为simple_list_item_1.xml的新XML文件中定义了文本单元格。

<TextView
        android:id="@+id/game"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center_vertical"
        android:minHeight="?android:attr/listPreferredItemHeightSmall"
        android:paddingStart="?android:attr/listPreferredItemPaddingStart"
        android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
        android:textAppearance="?android:attr/textAppearanceListItemSmall"
        android:textColor="@color/white"
        android:textColorHint="@color/white"
        tools:ignore="MissingConstraints" />

我正在使用API​​ 22 Android 5,1在Pixel 2模拟器上运行该应用程序。

2 个答案:

答案 0 :(得分:4)

在将Adapter设置为ListView时,您引用的是android.R.layout.simple_list_item_1,它是默认的系统资源,而不是您在xml中创建的资源。您需要使用R.layout.simple_list_item_1

// Create Array Adapter
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.simple_list_item_1,displayGames);

答案 1 :(得分:-1)

android.R.layout.simple_list_item_1更改为R.layout.simple_list_item_1

       // Create Array Adapter
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.simple_list_item_1,displayGames);