Intereting Posts
Изменение значка меню в панели действий в зависимости от открытого фрагмента DownloadManager IllegalStateException, создающий загрузку в DIRECTORY_DOWNLOADS Android – создание списка с плавающими заголовками Пользователи приложений Android Получают «Приложение не установлено» при попытке обновления Не закрывайте информацию на клике. (Google Maps Android API V2) Использовать ColorMatrix или HexColor в BlendModeFilter – Android? Как нарисовать путь на карте с помощью файла kml? Gradle строит невероятно медленно Как сохранить работу моего приложения, даже если приложение закрыто из диспетчера задач в телефоне MI Полноэкранное веб-приложение для Android Защита API веб-сервисов Spring RESTful от несанкционированного доступа? Как обрабатывать изменения с оверлея удаленных томов MediaSession? Что такое обратный вызов связующего на Android? Проект «appcompat_v7» создается автоматически после создания нового проекта в Eclipse Тернарный оператор возвращает значение – Java / Android

Отображение нескольких строк текста и переменных в 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>