Button を拡張する EventButton というクラスがあります。
ボタンのすべての設定は、このクラス、onClick() などにあります。
スクロールビューを持つホームアクティビティもあります
ユーザーがメニュー ボタンを押すと、Home アクティビティのスクロール ビューに EventButtons が追加されます。new EventButton() を呼び出すだけのオブジェクトをインスタンス化しない
ユーザーがボタンをクリックすると、ダイアログが表示され、ユーザーは「イベント」の名前と「イベント」の時間を設定します。
名前と時刻は、ホーム アクティビティの scollview 内のそのボタンに表示されます。
私の質問は、設定された時間が経過したかどうかを確認するために、たとえば 5 分ごとに EventButton を更新するにはどうすればよいかということです。TimerTask と Timer 、および Handler も試しましたが、どちらも機能していないようです。TimerTask がクラッシュし続けました。android で Handler を使用する方がよいこともわかりました。
private void scheduleDelay() {
EventButton.this.postDelayed(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
int mHour = calendar.get(Calendar.HOUR_OF_DAY);
int mMinute = calendar.get(Calendar.MINUTE);
if(EventButton.hour < mHour || EventButton.minute < mMinute) {
EventButton.this.setBackgroundColor(Color.RED);
}
EventButton.this.postDelayed(this, 5);
}
}, 5);
}
上記は、ユーザーが AlertDialog で EventButton の名前と時間を設定すると呼び出されます。
アップデート
結局、問題は Handler にあるようには見えません。クラッシュしているのは、時と分を取得しようとしたときのようです。