クロノメーターを使用して ListView の行 xml を取得しました
<LinearLayout android:layout_width="fill_parent"
android:id="@+id/layout_orders_list_row_ll_Timer"
android:focusable="false"
android:layout_height="wrap_content"
android:gravity="center_horizontal|right"
android:layout_gravity="center">
<Chronometer android:text="@+id/Chronometer01"
android:layout_height="wrap_content" android:layout_width="wrap_content"
android:id="@+id/layout_orders_list_row_chr_Timer"
android:focusable="false" android:focusableInTouchMode="false"
android:layout_gravity="center" android:enabled="true">
</Chronometer>
<Button android:background="@drawable/check" android:layout_height="wrap_content"
android:id="@+id/layout_orders_list_row_bt_Done"
android:layout_width="wrap_content" android:focusable="false" android:onClick="OnRowButtonClick">
</Button>
各行のクロノメーターを開始したいと思います。データベースからデータを取得してアダプターに入力します。その後、各クロノメーターに接続して計算しようとしていますが、うまくいきません。
SimpleAdapter simpleAdapter = new SimpleAdapter(this, fillMaps,
R.layout.orders_list_row, from, to);
listView.setAdapter(simpleAdapter);
for (int i = 0; i < simpleAdapter.getCount(); i++) {
LinearLayout vwParentRow = (LinearLayout) simpleAdapter.getView(i,
null, null);
LinearLayout ChildTop = (LinearLayout) vwParentRow.getChildAt(0);
LinearLayout ChildTop2 = (LinearLayout) ChildTop.getChildAt(1);
final Chronometer chrono = (Chronometer) ChildTop2.getChildAt(0);
chrono.setText("00:00:00");
chrono.setBase(SystemClock.elapsedRealtime());
chrono.start();
chrono.setOnChronometerTickListener(new OnChronometerTickListener() {
public void onChronometerTick(Chronometer arg0) {
// TODO Auto-generated method stub
long minutes = ((elapsedTime - chrono.getBase()) / 1000) / 60;
long seconds = ((elapsedTime - chrono.getBase()) / 1000) % 60;
currentTime = minutes + ":" + seconds;
arg0.setText(currentTime);
elapsedTime = elapsedTime + 1000;
}
});
}
listView.invalidate();
私が間違っていることは何ですか?たぶん、各行でクロノメーターを開始する方法が他にあるでしょうか?