Nav*_*ron 35 android text android-alertdialog
我需要在Alert Dialog中显示多行文本.如果我使用多个setMessage()方法,则只显示最后一个setMessage,如下所示.
final AlertDialog alertDialog = new AlertDialog.Builder(this).create();
alertDialog.setTitle("Statistics:");
alertDialog.setMessage("No. of attempts: " + counter);
alertDialog.setMessage("No. of wins: " + counterpos);
alertDialog.setMessage("No. of losses: " + counterneg);
Run Code Online (Sandbox Code Playgroud)
有没有办法在对话框中为每个这些创建一个新行?就像在System.print.out()中使用\n; 方法.
谢谢!
Ken*_*y C 76
你可以做这样的事情
String alert1 = "No. of attempts: " + counter;
String alert2 = "No. of wins: " + counterpos;
String alert3 = "No. of losses: " + counterneg;
alertDialog.setMessage(alert1 +"\n"+ alert2 +"\n"+ alert3);
Run Code Online (Sandbox Code Playgroud)
Tof*_*erJ 23
你可以创建一个你想要显示的所有内容的字符串,并添加"\n"你想要的换行符.
alertDialog.setMessage("No. of attempts: " + counter + "\n" +
"No. of wins: " + counterpos + "\n" +
"No. of losses: " + counterneg);
Run Code Online (Sandbox Code Playgroud)
甚至更好地使用StringBuilder:
StringBuilder sb = new StringBuilder();
sb.append("No. of attempts: " + counter);
sb.append("\n");
sb.append("No. of wins: " + counterpos);
sb.append("\n");
sb.append("No. of losses: " + counterneg);
alertDialog.setMessage(sb.toString());
Run Code Online (Sandbox Code Playgroud)
最好的方法是将静态文本提取到字符串资源中(在strings.xml文件中).如果要插入字符串而不是整数,请使用%d(或%s)以在正确的位置获取动态值:
<string name="alert_message">No. of attempts: %1$d\nNo. of wins: %2$d\nNo. of losses: %3$d</string>
Run Code Online (Sandbox Code Playgroud)
然后在代码中:
String message = getString(R.string.alert_message, counter, counterpos, counterneg);
alertDialog.setMessage(message);
Run Code Online (Sandbox Code Playgroud)
小智 12
您还可以直接在strings.xml文件中插入换行符:
<string name="my_string_text">This would revert your progress.\n\n Are you sure you want to proceed?</string>