これで少し試して検索した結果、自分のコードで動作する1つの解決策を見つけることができました。ここではそれを少しサンプルを行く:
private void updateTextView(ArrayList<Restaurant> restaurants, RestaurantAdapter itemsAdapter) {
Date date = new Date(); // given date
Calendar calendar = Calendar.getInstance(); // creates a new calendar instance
calendar.setTime(date); // assigns calendar to given date
int day = calendar.get(Calendar.DAY_OF_WEEK);
int hour = calendar.get(Calendar.HOUR_OF_DAY); // gets hour in 24h format
int minutes = calendar.get(Calendar.MINUTE); // gets hour in 12h format
TextView title = (TextView) findViewById(R.id.openTag);
if(hour>=21) {
restaurants.get(0).changeOpenTag("Closed");
itemsAdapter.notifyDataSetChanged();
}
if (hour>= 9 && hour <= 15) {
title.setText("Lunch");
}
else {
title.setText("Dinner");
}
}
そして
のonCreate私が追加したメソッドで:少なくとも
Thread t = new Thread() {
@Override
public void run() {
try {
while (!isInterrupted()) {
Thread.sleep(1000);
runOnUiThread(new Runnable() {
@Override
public void run() {
updateTextView(restaurants, itemsAdapter);
}
});
}
} catch (InterruptedException e) {
}
}
};
t.start();
これはそれを行うための最も効果的な方法がある場合、私は知らないが、 D
リフレッシュボタンを追加することができます。ユーザーがそのボタンをクリックすると、時間を再確認し、それに従ってテキストを設定します。また、サービスやスレッドを使用することもできます。 –
クイックアンサーに感謝します。私は手動ではなく、自動的にそれをしたい。私はスレッドとサービスをチェックします! – mCalado