【问题标题】:How to set color for all textviews in row in listadapter如何为listadapter中的行中的所有文本视图设置颜色
【发布时间】:2016-07-25 13:38:27
【问题描述】:

我已经创建了一个如下图所示的列表适配器,并像这样从 hashmap 填充文本视图

          HashMap<String, String> kursiShitje = new HashMap<>();
            for (int i = 0; i < 6; i++) {
                kursiShitje.put("text_1", "Shitje");
                JSONObject c = values.getJSONObject(i);
                String name = c.getString(TAG_SELL);
                kursiShitje.put("text_" + (i + 2), name);
            }

这是列表适配器:

ListAdapter adapter = new SimpleAdapter(
                MainActivity.this, kursiKembimit,
                R.layout.list_rows, new String[]{"text_1", "text_2", "text_3", "text_4", "text_5", "text_6", "text_7"},
                new int[]{R.id.text1, R.id.text2, R.id.text3, R.id.text4, R.id.text5, R.id.text6, R.id.text7}) {

list_rows.xml

  <?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/rows"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    android:paddingBottom="0dp"
    android:paddingLeft="10dp"
    android:paddingRight="10dp">

    <TextView
        android:id="@+id/text1"
        android:layout_width="180dip"
        android:layout_height="wrap_content"
        android:fontFamily="sans-serif-bold"
        android:gravity="right"
        android:textColor="@color/white"
        android:textSize="30sp"
        android:textStyle="bold"/>

    <TextView
        android:id="@+id/text2"
        android:layout_width="180dip"
        android:layout_height="wrap_content"
        android:fontFamily="sans-serif-bold"
        android:gravity="right"
        android:textColor="@color/white"
        android:textSize="30sp"
        android:textStyle="bold"/>

    <TextView
        android:id="@+id/text3"
        android:layout_width="180dip"
        android:layout_height="wrap_content"
        android:fontFamily="sans-serif-bold"
        android:gravity="right"
        android:textColor="@color/white"
        android:textSize="30sp"
        android:textStyle="bold"
        />

    <TextView
        android:id="@+id/text4"
        android:layout_width="180dip"
        android:layout_height="wrap_content"
        android:fontFamily="sans-serif-bold"
        android:gravity="right"
        android:textColor="@color/white"
        android:textSize="30sp"
        android:textStyle="bold"
        />

    <TextView
        android:id="@+id/text5"
        android:layout_width="180dip"
        android:layout_height="wrap_content"
        android:fontFamily="sans-serif-bold"
        android:gravity="right"
        android:textColor="@color/white"
        android:textSize="30sp"
        android:textStyle="bold"
        />

    <TextView
        android:id="@+id/text6"
        android:layout_width="180dip"
        android:layout_height="wrap_content"
        android:fontFamily="sans-serif-bold"
        android:gravity="right"
        android:textColor="@color/white"
        android:textSize="30sp"
        android:textStyle="bold"
        />

    <TextView
        android:id="@+id/text7"
        android:layout_width="180dip"
        android:layout_height="wrap_content"
        android:fontFamily="sans-serif-bold"
        android:gravity="right"
        android:textColor="@color/white"
        android:textSize="30sp"
        android:textStyle="bold"
        />
</LinearLayout>

问题是如何为列表中的每一行设置唯一的文本颜色。我可以使用覆盖 getView 为所有文本视图设置颜色,但我想为每一行设置唯一的颜色。我不知道如何解决它。

【问题讨论】:

  • 你必须使用你的自定义适配器!!
  • 我的意思是 baseadapter 或 arrayadapter
  • 显示R.layout.list_rows这个xml文件?
  • @SohailZahid 添加了 R.layout.list_rows
  • @VishalPatoliya 你有什么合适的例子来说明我想要实现的目标吗?

标签: android listview listadapter


【解决方案1】:

您在此布局中为每个 textView 设置的颜色将在行中使用相同的颜色。

您已经设置了White color 为所有文本视图设置不同的颜色。

在这里android:textColor="@color/BLUE" 尝试不同的颜色并查看结果。

 <TextView
        android:id="@+id/text4"
        android:layout_width="180dip"
        android:layout_height="wrap_content"
        android:fontFamily="sans-serif-bold"
        android:gravity="right"
        android:textColor="@color/white"
        android:textSize="30sp"
        android:textStyle="bold"
        />

【讨论】:

  • 我覆盖 list_rows 视图并像这样设置颜色 TextView text1 = (TextView) v.findViewById(R.id.text1); text1.setTextColor(Color.parseColor(textColor)); 对于所有文本视图。
  • @Aldo 是的,这也是一个不错的选择。所以你的问题解决了吗?如果我的帖子有帮助,请投票并打勾,谢谢。
  • 我想为创建的每一行使用不同的颜色,hashmap 是我为填充数据而构建的 3 个 hashmap 之一。现在我只能为所有的行和文本视图设置一种颜色。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-18
  • 1970-01-01
  • 2020-02-27
  • 1970-01-01
  • 1970-01-01
  • 2019-12-17
相关资源
最近更新 更多