Отображение нескольких строк текста и переменных в AlertDialog с помощью setMessage ()

Мне нужно отобразить несколько строк текста в диалоговом окне Alert. Если я использую несколько методов 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); 

Есть ли способ создать новую строку для каждого из них в диалоговом окне? Подобно использованию \ n в System.print.out (); метод.

Благодаря!

Solutions Collecting From Web of "Отображение нескольких строк текста и переменных в AlertDialog с помощью setMessage ()"

Вы можете сделать что-то подобное

 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); 

Вы можете просто создать одну строку всего, что вы хотите показать, и добавить «\ n», где вам нужны разрывы строк.

 alertDialog.setMessage("No. of attempts: " + counter + "\n" + "No. of wins: " + counterpos + "\n" + "No. of losses: " + counterneg); 

Или даже лучше использовать 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()); 

И лучший способ сделать это – извлечь статические тексты в строковый ресурс (в файле strings.xml). Используйте% d (или% s, если вы хотите вставлять строки, а не int), чтобы получить динамические значения в правильных местах:

 <string name="alert_message">No. of attempts: %1$d\nNo. of wins: %2$d\nNo. of losses: %3$d</string> 

А затем в коде:

 String message = getString(R.string.alert_message, counter, counterpos, counterneg); alertDialog.setMessage(message); 

Вы также можете вставлять новые строки непосредственно в файл strings.xml:

<string name="my_string_text">This would revert your progress.\n\n Are you sure you want to proceed?</string>