如何在ListView中更改文本颜色和背景?

时间:2016-12-30 06:40:06

标签: android

enter image description here

我想实现上述设计。请帮助我,我陷入了困境。

1 个答案:

答案 0 :(得分:1)

试试这个对我有用 我所做的是我有一个任务列表,偶数单元格为灰色,单元格为白色。此代码符合您的目的。 执行以下步骤:

java文件代码如下。这是适配器类getView方法的代码。在这里,我使用了甚至奇怪的概念。它适用于所有Android版本。

@Override
    public View getView(int position, View convertView, ViewGroup parent) {
        LayoutInflater inflater = context.getLayoutInflater();
        View listViewItem = inflater.inflate(R.layout.list_task_data, null, true);
        TextView textViewName = (TextView) listViewItem.findViewById(R.id.textViewName);
        TextView taskStatusImage = (TextView) listViewItem.findViewById(R.id.taskStatusImage);
        TextView textSerialNumber = (TextView) listViewItem.findViewById(R.id.textSerialNumber);
        LinearLayout linearLayout = (LinearLayout) listViewItem.findViewById(R.id.firstLayout);


        if (position % 2 != 0) {
            linearLayout.setBackgroundResource(Color.GRAY);


        } else {
            linearLayout.setBackgroundResource(Color.WHITE);
         }
}

用于充气的布局文件如下。

list_task_data.xml 文件的代码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/firstLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="10dp"
    android:paddingRight="10dp"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:weightSum="100">

    <TextView
        android:id="@+id/textSerialNumber"
        android:layout_width="37dp"
        android:layout_height="37dp"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:layout_marginLeft="5dp"
        android:layout_marginRight="5dp"
        android:gravity="center"
        android:text="text"
        android:textAlignment="center"
        android:textColor="@color/black"
        android:textSize="15dp" />

    <TextView
        android:id="@+id/textViewName"
        android:layout_width="180dp"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:layout_weight="30"
        android:descendantFocusability="blocksDescendants"
        android:fontFamily="@string/font_family_universal"
        android:padding="5dp"
        android:text="New Text"
        android:textAlignment="center"
        android:textIsSelectable="false"
        android:textSize="20dp"
         />

    <TextView
        android:id="@+id/taskStatusImage"
        android:layout_width="35dp"
        android:layout_height="35dp"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:layout_marginLeft="5dp"
        android:layout_marginRight="10dp"
        android:gravity="center"
        android:text=""
        android:textAlignment="center"
        android:textColor="@color/black"
        android:textSize="10dp" />

</LinearLayout>

在上面的布局中,您可以在列表视图单元格中进行充气。 您还可以根据选择添加代码以更改if else条件中的文本颜色字体大小等其他属性。

希望它可以帮助你找到一个可用的示例代码。