Android更改了arraylist中特定字符串的文本颜色

时间:2017-03-20 18:00:39

标签: android arraylist textview

我有一个名为incorrectAnswers的arraylist,我想更改该arraylist中那些字符串的文本颜色。

这是我的代码片段:

           ArrayList<String> incorrectAnswers = new ArrayList<>();
           if(mItemArray.get(0).second.startsWith("In")){
                numberOfCorrect++;
                numberOfTries++;
            } else{
                numberOfErrors++;
                incorrectAnswers.add(mItemArray.get(0).second);
            }

            if(mItemArray.get(1).second.startsWith("If")){
                numberOfCorrect++;
                numberOfTries++;
            }
            else{
                numberOfErrors++;
                incorrectAnswers.add(mItemArray.get(1).second);
            }

这是布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/item_layout"
android:layout_width="match_parent"
android:layout_height="70dp"
android:orientation="horizontal"
android:gravity="center_vertical"
android:padding="10dp"
android:backgroundTint="@android:color/holo_green_light"
android:layout_marginRight="5dp"
android:layout_marginEnd="5dp"
android:layout_marginBottom="5dp"
android:background="@drawable/border_spinner">

<ImageView
    android:id="@+id/image"
    android:layout_width="1dp"
    android:layout_height="1dp"
    android:src="@drawable/ic_abrasion"
    android:visibility="invisible"/>

<TextView
    android:id="@+id/list_text"
    android:layout_width="wrap_content"
    android:textSize="16sp"
    android:textColor="@color/textColor"
    android:layout_height="wrap_content"/>

我想以编程方式更改我在wrongAnswers中添加的项目的文字颜色。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

首先在drawables文件夹中创建一个xml来设置颜色状态: 让我们称之为text_color.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="@android:color/holo_red_dark" android:state_selected="true" />
    <item android:color="@android:color/holo_green_light" />
</selector>

然后,在布局中使用此xml作为文本颜色:

<TextView
android:id="@+id/list_text"
android:layout_width="wrap_content"
android:textSize="16sp"
android:textColor="@drawable/text_color"
android:layout_height="wrap_content"/>

最后,您必须仅设置具有错误答案的文本视图,如下所示:

TextView textList = (TextView) findViewById(R.id.list_text);
textList.setSelected(true);