の行定義の一部である4 TextViews
、 2 ImageViews
、 2 Buttons
、および 2 のウィジェットがありますListView
。データは XML とSimpleAdapter
. これらにアクセスするには、カスタム クラスで rTextViews
を実装し、 . これは機能し、動的に変更したい 2 つは で処理されます。私が混乱しているのは、他の 2 つの TextViews が渡されない理由です。これは、実行スレッドが 2 回だけ入るブレークポイントを設定することに基づいています。4回以上見る予定だった?ViewBinde
setViewValue
TextViews
setViewValue
setViewValue
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" />
要約すると、実行がオーバーライドに2回しか入力されず、たまたま更新したい2つだけになるのはなぜですか?
追加の読書と演繹的推論を通じて、さらにいくつかの情報が明らかになりました。私の考えでは、ListView
行内のビュー XML は通過しますViewBinder
が、それは間違っていました! 私が理解できることViewBinder
から、 を経由して DataAdapter に接続しsetViewBinder
ます。DataAdapter には、データを取り込むために使用するビューが示されているため、2 つだけが表示されていたことは理にかなっています。私はそれに2つだけを明らかにしていました。
次のスニペットでは、入力プロセスに関与するビューを指定し、それらを 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);
これは理にかなっているように思えますが、私の演繹的推論が正確かどうかはわかりません。さらに情報が見つかり次第更新します。