2013-08-07 5 views
0

У меня проблема с созданием AlertDialog. Независимо от того, что я делаю, заголовок и сообщение не всегда пусты вот мой код:alertdialog не отображает текст

AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(BigActivity.this); 
      dialogBuilder 
        .setTitle(item.getTitle())//no problem whith getters 
        .setMessage(item.getMessage()) 
        .setIcon(R.drawable.ic_launcher) 
        .setNegativeButton(R.string.cerrar, new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int id) { 
         dialog.cancel(); 
        } 
       }) 
       ; 
      AlertDialog dialog = dialogBuilder.create(); 
      dialog.show(); 

любая помощь будет оценена

P.S.

System.out.println(item.getTitle()+" "+item.getMessage()) 

работает нормально.

+0

что это 'item'? –

+0

Я не могу опубликовать исходный код этого, но это контейнер данных. метод item.getMessage() что-то вроде: "return string1 + string2 + string3" item.getTitle() аналогичен. – user2601262

+0

Это маркер? –

ответ

0

Попытка преобразовать его в строку, используя toString() функции, как:

.setMessage(item.getMessage().toString()) 
+0

нет, это не проблема: C, btw getters возвращают строки. в любом случае я старался без положительного результата. – user2601262

+0

Не могли бы вы попробовать это. Впрочем, догадка. Попробуйте создать сначала, а затем добавить заголовок и сообщение: AlertDialog.Builder DialogBuilder = new AlertDialog.Builder (BigActivity.this) .create(); – Sushil

+0

Я тоже пробовал это aproach, но не имеет значения – user2601262

0

Вы забыли добавить шоу()

Dialog.show(); 

Было бы также лучше, если вы будете следовать рекомендациям кодирования использовать строчная буква для первого символа имени переменной.

+0

Я думаю, что он может видеть alertDialog. Поле сообщения и заголовка пуст. Ему нужно преобразовать значения элементов в sting с помощью функции toString(). – Sushil

+0

oh моя ошибка, в копии кода я забыл эту строку (я ее исправлю), btw имена переменных, которые были изменены. В реальном коде руководствуется следующая рекомендация. (исправление этого также) – user2601262

+0

@Sushil Я проверил код, и даже без функции toString() он отображает заголовок и сообщение. OP - это название и значения сообщений String? – uncannyj

0

Предполагая, что вы можете видеть диалоговое окно (и вы не вызываете это в фоновом потоке), то единственной возможной причиной может быть то, что цвета текста и фона одинаковы. Попробуйте изменить цвет текста, используя либо из следующих способов:

  1. Использование встроенных HTML

    .setMessage (Html.fromHtml ("item.getMessage()")

  2. Пользовательские темы раскладка .

    link

+0

1.- такой же результат. 2.- если вы имеете в виду «AlertDialog.Builder (контекст контекста, int theme) ", недоступен для уровня 7 api, и мне действительно нужен этот уровень api. – user2601262

+0

После alert.show() попробуйте выполнить следующий код для отладки строки и цвета текста, потому что, похоже, может быть любая другая причина. alert.getWindow(). getAttributes(); TextView textView = (TextView) TextView alert.findViewById (android.R.id.message); String txt = textView.getText(). toString() ; textView.getTextColors(). ToString(); // дает цвета текста в разных состояниях –

Смежные вопросы