以下は、私がアプリを実行するときに私のカウントダウンタイマーをテキストビューに表示するためのコードです。しかし、私はそれを実行すると、それは表示されません。イベントの日、時間、分、秒を含むカウントダウンタイマーを作成しようとしていますか?
private TextView countdowndisplay;
private Handler handler;
private Runnable runnable;
countdowndisplay = (TextView) view.findViewById(R.id.countdowntv);
countDownStart();
public void countDownStart() {
handler = new Handler();
runnable = new Runnable() {
@RequiresApi(api = Build.VERSION_CODES.N)
@Override
public void run() {
handler.postDelayed(this, 1000);
try {
SimpleDateFormat dateFormat = null;
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) {
dateFormat = new SimpleDateFormat("yyyy-MM-dd");
} else {
//Set the optional Date format here for Devices Running ANDROID VERSION BELOW N
dateFormat = new SimpleDateFormat("yyyy-MM-dd");
}
// Please here set your event date//YYYY-MM-DD
Date futureDate = dateFormat.parse("2017-09-23");
Date currentDate = new Date();
if (!currentDate.after(futureDate)) {
long diff = futureDate.getTime()
- currentDate.getTime();
long days = diff/(24 * 60 * 60 * 1000);
diff -= days * (24 * 60 * 60 * 1000);
long hours = diff/(60 * 60 * 1000);
diff -= hours * (60 * 60 * 1000);
long minutes = diff/(60 * 1000);
diff -= minutes * (60 * 1000);
long seconds = diff/1000;
countdowndisplay.setText("" + String.format("%02d", days, hours, minutes, seconds));
}
} catch (Exception e) {
e.printStackTrace();
}
}
};
handler.postDelayed(runnable, 1 * 1000);
}
以下は、出力を表示するtextViewのXMLです。
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/nextdrifttv"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:id="@+id/countdowntv"/>
ですか?それはなぜ私のテキストビューに表示されない任意のアイデア? –