Listview丢失状态和信息

时间:2018-01-17 15:17:31

标签: android mobile

我有一个用于填充列表视图的android应用程序,在此列表视图中有一个验证,根据每个记录的优先级对齐行的颜色(例如,黄色= 1,绿色= 2等...)。

什么会发生,当它是列表视图时,最初会在每个记录中正确加载为匹配,但是,如果您是一种注册方式,无论您是否在整个列表视图中执行多个scrool,这个这是我们最后一次失去这些优先事项,记录变成了一种颜色。如果我在背景中放置一个应用程序,并且当我将它放回前景时,记录传递出来以显示所有相同的颜色,也会发生同样的情况。

有没有人知道发生了什么?

1 个答案:

答案 0 :(得分:0)

private void setIconColorFromPriority(short prioridade, ImageView icon) {
    if (prioridade <= 0) {
        prioridade = 8;
    }
    switch (prioridade) {
        case 1:
            icon.setTag(getContext().getResources().getColorStateList(R.color.prioridade_1)); //VERMELHO
            break;
        case 2:
            icon.setTag(getContext().getResources().getColorStateList(R.color.prioridade_2)); //LARANJA ESCURO
            break;
        case 3:
            icon.setTag(getContext().getResources().getColorStateList(R.color.prioridade_3)); //LARANJA
            break;
        case 4:
            icon.setTag(getContext().getResources().getColorStateList(R.color.prioridade_4)); //AMARELO
            break;
        case 5:
            icon.setTag(getContext().getResources().getColorStateList(R.color.prioridade_4)); //AMARELO
            break;
        case 6:
            icon.setTag(getContext().getResources().getColorStateList(R.color.prioridade_4)); //AMARELO
            break;
        case 7:
            icon.setTag(getContext().getResources().getColorStateList(R.color.prioridade_5)); //VERDE
            break;
        case 8:
            icon.setTag(getContext().getResources().getColorStateList(R.color.sem_prioridade)); //VERDE
            break;
        //codigo 9 para a prioridade é referente aos recursos AGENDA
        case 9:
            icon.setTag(getContext().getResources().getColorStateList(R.color.prioridade_Agenda)); //ROSA SHOCK
            break;
    }


    <?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="center"
    android:animateLayoutChanges="false"
    android:orientation="vertical">

    <LinearLayout
        android:id="@+id/form"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical">

        <ListView
            android:id="@android:id/list"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:animateLayoutChanges="false"
            android:choiceMode="singleChoice"
            android:clickable="true"
            android:focusable="true"
            android:longClickable="true" />


        <!--android:layout_gravity="center"-->
        <TextView
            android:id="@+id/empty"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:gravity="center"
            android:text="@string/lista_vazia" />


    </LinearLayout>

    <include
        android:id="@+id/loading"
        layout="@layout/progress_loading_data"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:visibility="gone" />
   </RelativeLayout>

以下是您要求的代码......

基本上,如果我滚动列表,它会开始在所有图标中添加相同的颜色,并且应该在每个图标中各自的颜色....