N
newpageart
Neues Mitglied
- 0
Hallo liebe Forengemeinde,
ich versuch schon seit einiger zeit eine RadioGroup mit zusätzlichem Textfeld zuerstellen. Dies Funktionier auch, aber leider klebt das textfeld am linken Rand. Ich würde es aber gern mit einem Abstand zum linken rand erstellen (soviel Abschand wie RadioButton breit ist).
So sieht es jetzt aus:
So würde ich es gern haben:
Ich erstelle die Felder mit folgendem Code automatiasch aus einem JSON.
Aufbau JSON: "rb_options":[{"rb_name":"rb1","rb_label":"RadioButton1"},{"rb_name":"rb2","rb_label":"RadioButton2","rb_textfield":"textfeld1"},{"rb_name":"rb3","rb_label":"RadioButton3"},{"rb_name":"rb4","rb_label":"RadioButton1"}]
Mit freundlichen Grüße,
Tom
ich versuch schon seit einiger zeit eine RadioGroup mit zusätzlichem Textfeld zuerstellen. Dies Funktionier auch, aber leider klebt das textfeld am linken Rand. Ich würde es aber gern mit einem Abstand zum linken rand erstellen (soviel Abschand wie RadioButton breit ist).
So sieht es jetzt aus:
Code:
O RadioButton 1
O RadioButton 2
[Textfeld]
O RadioButton 3
O RadioButton 4
Code:
O RadioButton 1
O RadioButton 2
[Textfeld]
O RadioButton 3
O RadioButton 4
Aufbau JSON: "rb_options":[{"rb_name":"rb1","rb_label":"RadioButton1"},{"rb_name":"rb2","rb_label":"RadioButton2","rb_textfield":"textfeld1"},{"rb_name":"rb3","rb_label":"RadioButton3"},{"rb_name":"rb4","rb_label":"RadioButton1"}]
Code:
final LinearLayout ll = (LinearLayout)findViewById(R.id.linearLayoutContent);
ll.setPadding(10, 0, 10, 0);
JSONArray rb_options = fld_c.getJSONArray("rb_options");
int rb_i = rb_options.length();
final RadioButton[] rb = new RadioButton[rb_i+1];
RadioGroup rg = new RadioGroup(this);
rg.setOrientation(RadioGroup.VERTICAL);
rg.setTag(fld_c.getString("name"));
for(int i = 0; i < rb_i; i++){
rb[i] = new RadioButton(this);
JSONObject json_rb = (JSONObject)rb_options.get(i);
rb[i].setText(json_rb.getString("rb_label"));
rb[i].setId(i);
rg.addView(rb[i]);
// Textfeld
if(!json_rb.isNull("rb_textfield")){
EditText fld_rb_et = new EditText(this);
fld_rb_et.setTag(json_rb.getString("rb_textfield"));
LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
fld_rb_et.setPadding(50, 5, 5, 5);
fld_rb_et.setLayoutParams(params);
rg.addView(fld_rb_et);
}
}
ll.addView(rg);
Tom
Zuletzt bearbeitet: