2016-05-06 6 views
0

Ich habe mehrere RadioGroups für Fragen dynamisch generiert, die aus der Datenbank geholt wurden und ich habe den RadioGroups auch IDs seriell vergeben.Wie RadioButtons nach IDs dynamisch generierter RadioGroups überprüft werden

Jetzt möchte ich alle RadioButtons von allen RadioGrouips überprüfen, damit ich sie in der Datenbank speichern kann.

Wie bekomme ich all diese RadioGroups und ihre aktivierten RadioButtons zu jeder RadioGroup ID?

Jeder Versuch einer Lösung wäre willkommen!

if (c.moveToFirst()) { 
      do { 

       String question = c.getString(1); 
       String option1 = c.getString(2); 
       String option2 = c.getString(3); 
       String option3 = c.getString(4); 

       // add text view 
       qtxt = new TextView(getApplicationContext()); 
       counter4q += 1; 
       qtxt.setId(counter4q); 
       qtxt.setText(question); 
       qtxt.setTextSize(15); 
       qtxt.setTextColor(getResources().getColor(R.color.black, null)); 
       ll.addView(qtxt); 

       questions.add(qtxt.getText().toString()); 
       Log.d("arrayq",questions.toString()); 

       Log.d("question", qtxt.getText().toString()); 
       String qid = String.valueOf(counter4q); 
       Log.d("questionid", qid); 

       //create the RadioGroup 
       rg = new RadioGroup(getApplicationContext()); 
       rg.setOrientation(RadioGroup.VERTICAL); 
       counter4rg += 1; 
       rg.setId(counter4rg); 

       rgIDs.add(String.valueOf(rg.getId())); 
       Log.d("arrayrgid", rgIDs.toString()); 

       Log.d("rg", String.valueOf(rg.getId())); 
        String rgid = String.valueOf(counter4rg); 
       Log.d("rgid", rgid); 

       //add radio buttons 
       o1 = new RadioButton(getApplicationContext()); 
       o2 = new RadioButton(getApplicationContext()); 
       o3 = new RadioButton(getApplicationContext()); 

       counter4rb += 1; 
       o1.setId(counter4rb); 

       Log.d("o1", o1.getText().toString()); 
       String o1id = String.valueOf(counter4rb); 
       Log.d("o1id", o1id); 

       counter4rb += 1; 
       o2.setId(counter4rb); 

       Log.d("o2", o2.getText().toString()); 
       String o2id = String.valueOf(counter4rb); 
       Log.d("o2id", o2id); 

       counter4rb += 1; 
       o3.setId(counter4rb); 

       Log.d("o3", o3.getText().toString()); 
       String o3id = String.valueOf(counter4rb); 
       Log.d("o3id", o3id); 

       o1.setText(option1); 
       o2.setText(option2); 
       o3.setText(option3); 

       o1.setTextColor(getResources().getColor(R.color.black, null)); 
       o2.setTextColor(getResources().getColor(R.color.black, null)); 
       o3.setTextColor(getResources().getColor(R.color.black, null)); 

       //the RadioButtons are added to the radioGroup instead of the layout 
       rg.addView(o1); 
       rg.addView(o2); 
       rg.addView(o3); 

       //you add the whole RadioGroup to the layout 
       ll.addView(rg); 

      } while (c.moveToNext()); 
     } 
+0

Just do getId() –

+0

getId() nur die ID der letzten Radiogroup @NongthonbamTonthoi kehrt Ich brauche alle Ids – SilentG

Antwort

0

Genau dies tun:

int o1_Id = o1.getId(); 
int o2_Id = o2.getId(); 
int o3_Id = o3.getId(); 

Für alle IDs von RadioGroups bekommen eine Liste zu erstellen:

List<Integer> ids = new ArrayList<>(); 

dann die IDs hinzufügen:

ids.add(counter4rg); 

, während sich :

for(int i=0; i< ids.size(); i++) { 
     System.out.println(ids.get(i)); 
    } 

erhalten geprüft RadioButtions:

 rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener()   { 
     @Override 
     public void onCheckedChanged(RadioGroup arg0, int selectedId) { 
      RadioButton radioButton = (RadioButton) findViewById(selectedId); 
      //add to your list 

     } 
    }); 
+0

Was ich brauche, ist die Identifikation aller die generierten RadioGroups – SilentG

+0

okay, wie bekomme ich jetzt die aktivierten RadioButtons in allen RadioGroups? – SilentG

+0

Dann erstellen Sie eine andere Liste, um das zu speichern –

Verwandte Themen