У меня есть 4 TextViews
, 2 ImageViews
, 2 и 2 виджетов, которые являются частью определения строки в ListView
. Данные поступают из XML и SimpleAdapter
. Для доступа к этим TextViews
я реализую ViewBinde
r в пользовательском классе и переопределяю setViewValue
. Это работает, и два TextViews
, которые я хочу динамически изменять, обрабатываются в setViewValue
. Что меня смущает, так это то, что мои другие два TextView не проходят через setViewValue
. Я говорю об этом, основываясь на установке точки останова, где поток выполнения вводится только дважды. Я ожидал увидеть его 4 или более раз?Лучшее понимание ViewBinder для SimpleAdapter
Вот 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" />
Таким образом, в итоге почему выполнение ввода переопределение только дважды, и он просто так случается быть точным два я хочу обновить?
В результате дополнительного чтения и дедуктивного рассуждения выявлено еще несколько фрагментов информации. На мой взгляд, когда-либо View в строке ListView
XML проходил бы через 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);
Хотя это, кажется, имеет смысл, я не знаю, что мое дедуктивное рассуждение является точной. Будет обновляться, когда я нахожу больше информации.
Роджер по именованию класса и переменной одинаковый. Вы правы, и я просто быстро печатал для публикации. Что касается возврата true, я понимаю, что вы говорите, ВСЕГДА возвращает true из setViewValue. Я смотрю ссылку, предоставленную сейчас, чтобы найти лучший способ вернуться из setViewValue, чтобы он был точным, а не только жестко запрограммированным. – GPGVM
Чувак, который является удивительным. Я не знал, что вы можете изучить исходный код. Двойное спасибо. – GPGVM