Лучшее понимание ViewBinder SimpleAdapter

У меня есть 4 TextViews, 2 ImageViews, 2 Buttonsи 2 виджета, которые являются частью строки определение в ListView. Данные поступают из XML и SimpleAdapter. Чтобы получить доступ к этим TextViews, я реализую ViewBinder в пользовательском классе и переопределяю setViewValue. Это работает, и два TextView, которые я хочу динамически изменить, обрабатываются в setViewValue. Что меня смущает, так это то, почему мои два других TextView не проходят через setViewValue. Я говорю это, основываясь на установке точки останова, когда поток выполнения входит только дважды. Я ожидал увидеть это 4 или более раз?

Вот setViewValue, где у меня установлена ​​точка останова.

@Override     
public boolean setViewValue(View view, Object data, String text)
{
    if(view.getId() == R.id.txtvw1)
    {             
//blah do some stuff
    }
    else if (view.getId() == R.id.txtvw2)
    {
//Blah do some stuff
    }

    return true;
} 

XML-декларация TextViews(1 показывает, а 4 нет):

<TextView
        android:id="@+id/txtvw1"
        android:layout_centerHorizontal="true"
        android:layout_width="185dp"
        android:layout_height="25dp"
        android:textSize="20sp"
        android:layout_marginTop="60dp"
        android:gravity="center"
        android:inputType="none"
        android:text="@string/str_StaticA"
        android:textColor="#C0F700" />

    <TextView
        android:id="@+id/txtvw4"
        android:layout_alignParentLeft="true"
        android:layout_marginLeft="35dp"
        android:layout_width="95dp"
        android:layout_height="50dp"
        android:textSize="18dp"
        android:layout_marginTop="110dp"
        android:gravity="center"
        android:inputType="none"
        android:text="IMHO:"
        android:textColor="#FFBA19" />

Итак, в заключение, почему выполнение входит в переопределение только дважды, И так получилось, что это именно два I хотите обновить?

Благодаря дополнительному чтению и дедуктивным рассуждениям стало известно еще несколько фрагментов информации.На мой взгляд, когда-либо View в строке ListViewXML проходил через ViewBinder, но это было НЕПРАВИЛЬНО! Насколько я понимаю, вы прикрепляете ViewBinderк DataAdapter через setViewBinder. Что ж, поскольку DataAdapter сообщается, какие представления использовать для заполнения данных в нем, имеет смысл показывать только два. Я только раскрывал два к этому.

Вот фрагмент, в котором я указываю представления, участвующие в процессе заполнения, и передаю их конструктору DataAdapter:

String[] from = new String[] {"txtvw_PrevLift", "txtvw_PrevReps", "ActuLiftPikr", "ActulRepsPikr" };
int[] to = {R.id.txtvw_PrevLift, R.id.txtvw_PrevReps, R.id.ActuLiftPikr, R.id.ActulRepsPikr };

LiftDataAdapter LiftDataAdapter = new LiftDataAdapter(this, LiftDataMaps, R.layout.liftdatalayout, from, to);

Хотя это кажется логичным, я не уверен, что мои дедуктивные рассуждения точны. Буду обновлять, когда найду больше информации.

5
задан Luksprog 19 May 2012 в 07:41
поделиться