Mam 4 TextViews
, 2 ImageViews
, 2 Buttons
i 2 widżety, które są częścią definicji wiersza w ListView
. Dane pochodzą z XML i SimpleAdapter
. Aby uzyskać dostęp do tych TextViews
, implementuję ViewBinde
rw klasie niestandardowej i zastępuję setViewValue
. To działa i dwie zmiany, które chcę dynamicznie zmieniać, są obsługiwane w setViewValue
. To, co jest dla mnie mylące, to to, dlaczego moje dwa pozostałe okna TextView nie przechodzą przez setViewValue
. Mówię to na podstawie ustawienia punktu przerwania, w którym wątek wykonania wchodzi tylko dwa razy. Spodziewałem się zobaczyć to 4 lub więcej razy?Lepsze zrozumienie ViewBinder SimpleAdaptera
Oto setViewValue
, gdzie mam zestaw punktów przerwań.
@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;
}
deklaracja xml z TextViews
(1 pokazach i 4 nie):
<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" />
Tak w skrócie dlaczego wykonanie wprowadzić nadpisanie tylko dwa razy i to tylko tak się składa, że dokładna dwa chcę zaktualizować?
Cóż przez dodatkowe czytanie i dedukcyjne rozumowanie wyszło na jaw kilka dodatkowych informacji. W moim wyobrażeniu, kiedykolwiek wiersz ListView
XML przejdzie przez ViewBinder
, ale to było NIEPRAWDZIWE! Z tego co mogę sobie wyobrazić, dołączasz ViewBinder
do DataAdapter przez setViewBinder
. Cóż, odkąd DataAdapter jest informowany o tym, jakich widoków użyć do zapełnienia danych, ma sens, że pokazywały się tylko te dwie. Dowiedziałem się tylko dwóch.
Oto fragment gdzie mogę określić widoków zaangażowanych w proces wypełniania i przekazywania ich konstruktora 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);
Choć to wydaje się mieć sens nie wiem, że moje rozumowanie dedukcyjne Jest dokładna. Aktualizacja zostanie zaktualizowana, gdy znajdę więcej informacji.
Nazywanie klasy i zmiennej tym samym. Masz rację i właśnie pisałam szybko, by opublikować. Jeśli chodzi o zwracanie wartości true, rozumiem, co mówisz, ZAWSZE zwracając wartość true z setViewValue. Czekam na link podany teraz, aby znaleźć lepszy sposób na powrót z setViewValue, więc jest dokładny nie tylko na stałe. – GPGVM
Koleś, który jest niesamowity. Nie wiedziałem, że możesz zajrzeć do kodu źródłowego w ten sposób. Podwójnie dziękuję. – GPGVM