各項目の時間を含むリストビューがあります。左に時間を表示し、右に残り時間を表示します。たとえば、午後 6 時を表示したいとします。現在は午後 4 時 53 分です。残り 1 時間 7 分を表示します。これは BaseAdapter に計算されます。
ここで、これらの残り時間を 30 秒ごとに更新したいと思います。それで、ランナブルでハンドラーを使用して notifyDataSetChanged() を呼び出そうとしましたが、データを更新する必要があると思います。そうしないと、notifyDataSetChanged() は何もしませんよね?
したがって、ここにいくつかのコードがあります:
私のアクティビティで実行可能:
private Runnable updateScreen = new Runnable() {
public void run() {
//update of the current time
rightNow = Calendar.getInstance();
timeNow = rightNow.get(Calendar.HOUR_OF_DAY) * 60 + rightNow.get(Calendar.MINUTE);
if(adapter != null)
adapter.notifyDataSetChanged();
handler.postDelayed(this, 30000);
}
};
アクティビティでアダプターをインスタンス化する方法は次のとおりです。
adapter = new TimesAdapter(context, times, timeNow);
times は String[] であり、timeNow は int です。
何かアイデアはありますか?さらにコードが必要な場合は教えてください。