我的代码将秒数转换为小时,分钟,秒(s):
int day = (int)TimeUnit.SECONDS.toDays((long) val3);
long hours = TimeUnit.SECONDS.toHours((long) val3) - (day *24);
long minute = TimeUnit.SECONDS.toMinutes((long) val3) - (TimeUnit.SECONDS.toHours((long) val3)* 60);
long second = TimeUnit.SECONDS.toSeconds((long) val3) - (TimeUnit.SECONDS.toMinutes((long) val3) *60);
我也是编写结果的代码:
alertDialog.setMessage("Day\t\t" + day + "\nHour\t\t" + hours + "\nMinute\t" + minute + "\nSeconds\t" + second);
我需要使用\ t输入正确的格式来分隔变量的日,小时,分钟。问题是我不知道我有多少天/小时/分钟。那么,以编程方式使用\ t的最佳方式是什么?
答案 0 :(得分:1)
要获得与此类似的效果,请创建自定义Dialog
并为其使用自定义布局。修改内部TextView
或您要用于显示数据的任何内容的值。在我的演示中,你可以做一些简单的事情:
Dialog dialog = new Dialog(this);
dialog.setContentView(R.layout.dialog);
((TextView)dialog.findViewById(R.id.days)).setText(days);
((TextView)dialog.findViewById(R.id.hours)).setText(hours);
((TextView)dialog.findViewById(R.id.minutes)).setText(minutes);
((TextView)dialog.findViewById(R.id.seconds)).setText(seconds);
//To show, just call dialog.show();
与R.layout.dialog
对应的布局如下,但请记住,您可以修改此布局以满足您的确切需求,更改颜色大小,布局和您想要的任何内容。我尽量保持简洁,但我们都知道xml布局很大,即使对于简单的布局也是如此。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:orientation="horizontal"
android:layout_height="match_parent">
<LinearLayout
android:orientation="vertical"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Days"
android:id="@+id/daysLabel"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hours"
android:id="@+id/hoursLabel" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Minutes"
android:id="@+id/minutesLabel"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Seconds"
android:id="@+id/secondsLabel"/>
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0"
android:id="@+id/days" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="42"
android:id="@+id/hours"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="12"
android:id="@+id/minutes"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="59"
android:id="@+id/seconds"/>
</LinearLayout>
</LinearLayout>
总而言之,您创建了一个xml布局文件,该文件将显示为对话框,而不是默认对话框。这使您可以自由决定显示的内容,而不受限制。
答案 1 :(得分:1)
如果您对单位前面的数字没问题,那么您可以轻松排列所有内容而无需自定义对话框布局。只需将setMessage更改为:
即可alertDialog.setMessage(String.format("%3d Day\n%3d Hour\n%3d Minute\n%3d Seconds",
day, hours, minute, second));