【问题标题】:Android Custom ListView Text ColorAndroid 自定义 ListView 文本颜色
【发布时间】:2013-12-13 07:34:21
【问题描述】:

我正在尝试更改我的 Listview 的文本颜色。

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
 android.R.layout.simple_list_item_multiple_choice, stg1);

我已使用默认 XML 来调用数据列表,现在需要更改此列表视图的文本颜色。我知道我可以使用其他自定义类,但有没有其他方法可以通过仅使用此类来更改文本颜色。

我搜索了很多并尝试了很多其他解决方案,但每个人都建议使用自定义类,但我不想使用自定义类。

下面是我提到的链接。

How to change the list view text color?

Android: Change text color in ListView for singleChoice

how to change the color of the text of the default ListView in android?

Android ListView Text Color

Change ListView's textcolor

How to Change List View Text color

还有许多其他链接,但每个人都建议使用自定义类,获取文本视图并更改文本视图的颜色,但我不想使用任何其他 XML 文件或任何自定义类。

即使我不知道这是否可能,所以请帮助我。提前致谢。

【问题讨论】:

  • 为什么不想使用自定义类?它为您提供了更大的灵活性.. 使用自定义类,只需几行代码即可完成..
  • 我知道,但是我正在从这个列表视图中的数据库加载数据,这是使用带有多个检查的简单复选框从数据库加载数据的最简单方法。
  • 这和自定义类没有区别。就从数据库加载数据和拥有多个复选框而言。
  • @AmulyaKhare,我尝试使用自定义类从带有多个复选框的列表视图中的数据库加载数据,但我没有成功。如果您有任何工作示例,请建议或提供链接。这将是一个很大的帮助。
  • 您还想根据位置更改文本框的颜色还是将它们全部更改为某种特定颜色(比如现在所有文本都为红色)?

标签: android listview android-listview colors


【解决方案1】:

步骤1):创建XML布局文件custom_list_item_multiple_choice

<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/text1"
    android:layout_width="match_parent"
    android:layout_height="?android:attr/listPreferredItemHeightSmall"
    android:textAppearance="?android:attr/textAppearanceListItemSmall"
    android:gravity="center_vertical"
    android:checkMark="?android:attr/listChoiceIndicatorMultiple"
    android:paddingStart="?android:attr/listPreferredItemPaddingStart"
    android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
    android:textColor="#FF0000"
/>

其中,android:textColor="#FF0000" 指定您的文本颜色。

第 2 步):像这样初始化适配器:

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
 R.layout.custom_list_item_multiple_choice, stg1);

其他一切都保持不变..一切都应该正常工作。

【讨论】:

  • 非常感谢...还有一个问题,如果我想根据位置更改文本,那么我该怎么做。
  • 那么你肯定需要一个扩展ArrayAdapter的自定义类。您只需覆盖getView() 方法。就这样。休息一切都保持不变..
  • 感谢您的回答。但我不知道如何使用这个自定义类。你能举个例子吗?
  • 这可能不是发布示例的正确位置,但您可以查看我发布的这些类似答案。这正是你需要做的:stackoverflow.com/a/19657563/827110, stackoverflow.com/a/20416230/827110
【解决方案2】:

试试

textView.setTextColor(Color.rgb(0,102, 51)); 在您的自定义适配器文本视图中

如果您没有使用自定义适配器,请使用 ArrayAdapter&lt;Spanned&gt;() 为文本设置自定义颜色。

【讨论】:

  • 我没有使用自定义适配器类。
  • 将你的arrayadapter改为类型来制作颜色。
  • 您能否举例说明如何将 与 Arrayadapter 一起使用。
【解决方案3】:

这可能对你有帮助...

    ArrayList<String> arrayList = new ArrayList<String>();
    // add your String items to array list
    ArrayList<Spanned> spannedList = new ArrayList<Spanned>(
            arrayList.size());
    for (int i = 0, N = arrayList.size(); i < N; i++) {
        String s = arrayList.get(i);
        String html = "<font color=\"#0000FF\">" + s + "</font>"; // blue color
        Spanned spanned = Html.fromHtml(html);
        spannedList.add(spanned);
    }
    ArrayAdapter<Spanned> adapter = new ArrayAdapter<Spanned>(
            this, android.R.layout.simple_list_item_1, spannedList);

您可以使用颜色代码将文本设置为任何颜色。 (这里我使用蓝色 0000FF)。更多颜色代码见here

【讨论】:

    【解决方案4】:

    你可以使用

    Html.fromHtml()
    

    在使用它之前,您需要迭代适配器值并将该值存储在一个跨区变量中,例如

    Spanned out=Html.fromHtml("here you can use html tags like font color ,heading tag etc");
    

    【讨论】:

      猜你喜欢
      • 2017-05-14
      • 2011-05-30
      • 1970-01-01
      • 2013-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-10
      相关资源
      最近更新 更多