我有一个代码可以将秒数转换为小时、分钟、秒:
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 的最佳方式是什么?
最佳答案
要实现与此类似的效果,请创建自定义 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 布局文件,而不是默认文件。这使您可以不受限制地决定在何处显示内容。
关于android - 正确格式化文本以提醒对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26077058/