2013-06-08 4 views
0

Я строю макет во время выполнения, я должен показать группу радио с 4 переключателями для пользователя, но иногда я должен показывать поле редактирования с помощью переключателя, чтобы пользователь может написать что-то, связанное с этим переключателем в окне редактирования. Я хочу, чтобы поле редактирования появилось рядом с переключателем. Я попытался создать поле редактирования, но он продолжает отображаться под группой радиостанций, и если я разделяю одну из кнопок линейного макета с текстом редактирования, он становится недоступным для группы радио. это код для создания группы радиоСтроение группы радио во время работы android

RadioGroup radioGroup = new RadioGroup(context); 
    radioGroup.setContentDescription(id); 

    for (int i = 0; i < vector.size(); i++) { 
    RadioButton radioButton = new RadioButton(context); 
    radioButton.setTextColor(Color.BLACK); 
    radioButton.setText("" + vector.get(i).getQ_text()); 

    radioButton.setContentDescription(vector.get(i).getA_id()); 
    radioButton.setTextSize(20); 
    radioButton.setTextColor(Color.parseColor("#A5462E")); 
    radioGroup.addView(radioButton); 
    radioGroup.setPadding(20, 0, 0, 0); 

Как я могу построить поле редактирования во время выполнения будет отображаться рядом с кнопкой радио.

ответ

0

Мое предложение было бы создать макет для каждой строки вашего RadioGroup в XML-файл, например так:

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"> 

<RadioButton 
     android:id="@+id/button" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     /> 

<EditText 
     android:id="@+id/edit_text" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:visibility="invisible"/> 

</LinearLayout> 

А затем в цикле вы можете надуть этот макет и сделать то, что вы хотите с ним :

final LinearLayout root = (LinearLayout) findViewById(R.id.root); 
    final RadioGroup radioGroup = new RadioGroup(this); 
    for (int i = 0; i < 3; i++) { 

     final LinearLayout item = (LinearLayout) LayoutInflater.from(this).inflate(R.layout.item_radio_button, null); 
     final RadioButton button = (RadioButton) item.findViewById(R.id.button); 
     final EditText editText = (EditText) item.findViewById(R.id.edit_text); 

     button.setText("Test"); 

     // Your condition to show or not the editText 
     if (i % 2 == 0) { 
      editText.setVisibility(View.VISIBLE); 
     } 
     radioGroup.addView(item); 
    } 
    root.addView(radioGroup); 
Смежные вопросы