2014-10-28 5 views
0

Я создаю RadioButtons и динамически добавляю их в RadioGroup. Но текст для RadioButtons не отображается на экране при запуске приложения.RadioButton.setText() не отображает текст

Это мой код для Radiobuttons

else if ((items.get(i).toString()).equals("rad")) { 
       RadioGroup bg = new RadioGroup(getApplicationContext()); 
       int child=0; 
       for (int h = textlen; h < text.size(); textlen++) { 

        if (text.get(textlen).contains("(")) { 

         s = text.get(textlen).replace("(", ""); 

         if (s.contains(")")) 
          s = s.replace(")", ""); 

        } else if (text.get(textlen).contains(")")) { 
         s = text.get(textlen).replace(")", ""); 
        } else 
         s = text.get(textlen); 

        RadioButton radioButton = new RadioButton(
          getApplicationContext()); 
        bg.addView(radioButton); 
        ///radioButton.setName("rbt"); 
        if (s.contains("{on}")) { 
        // radioButton.setSelected(true); 
         radioButton.setChecked(true); 
         s = s.replace("{on}", ""); 
        } else { 
         radioButton.setChecked(false); 
         s = s.replace("{of}", ""); 
        } 
        //((RadioButton)bg.getChildAt(child)).setText(s); 
        //child++; 

        radioButton.setText(s); 

        String c = text.get(textlen).substring(
          text.get(textlen).length() - 1); 
        if (c.equals(")")) { 
         textlen++; 
         break; 
        } 



       } 

       layout.addView(bg); 
      } 

Когда я отладки кода я могу видеть, что текст добавляется в RadioGropus детей

Но запуск приложения текст не видно. Можно ли выявить проблему. Thanks Alot

+0

попробуйте сначала установить текст, а затем использовать 'bg.addView (radioButton);' также присваивать идентификатор радиобарабану с помощью 'setId() ' –

ответ

2

Просто добавьте

setLayoutParams(params); 

как для RadioButton, а также RadioGroup.

Где

android.widget.LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
      LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT); 
1

Это происходит очень долго, потому что достаточное количество места не выделяется виджетам, и они не могут отображать текст, хотя он есть. Если отладчик показывает текст, код в порядке ... проверьте XML и назначьте правильное пространство виджетам. Попробуйте назначить текст, закодированный для уточнения.

+0

Спасибо за ваш ответ. Но у меня нет xml. Я генерирую весь макет в java. Как я могу назначить правильные пробелы, поскольку я использую linerlayout и не предоставляю никакого пространства. –

+0

Можете ли вы опубликовать скриншот – vkm

+1

снимок экрана какой –

2

Просто измените цвет текста и появляется текст. По умолчанию цвет текста белый, это была проблема в моем случае.

+0

, который может быть одним, может быть. Но не в моем случае. Но спасибо за ответ :) –

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