2016-05-06 2 views
0

データベースからフェッチされた質問に対して複数のRadioGroupを動的に生成しました。また、IDをRadioGroupsに順番に割り当てました。動的に生成されたRadioGroupsのIDに従ってRadioButtonsをチェックする方法

ここで、すべてのRadioGrouipsからチェックされたRadioButtonを取得して、データベースに保存することができます。

これらのラジオグループと、各ラジオグループIDに関連するチェックされたラジオボタンをすべて取得するにはどうすればよいですか?

解決策を試してみてください!

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

をするだけのgetId() –

+0

のgetId()は、唯一の私は必要なもの、私はすべてのID – SilentG

答えて

0

ただ、この操作を行います。

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

が、その後のIDを追加します:

RadioGroupsのすべてのIDを取得するための
int o1_Id = o1.getId(); 
int o2_Id = o2.getId(); 
int o3_Id = o3.getId(); 

リスト作成

ids.add(counter4rg); 

を取得中:

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

確認RadioButtions取得するには:

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

     } 
    }); 
+0

必要がある最後のRADIOGROUP @NongthonbamTonthoiのIDを返しますすべてのIDです生成されたRadioGroups – SilentG

+0

今、すべてのRadioGroupでチェックされたRadioButtonsを取得するにはどうすればいいですか? – SilentG

+0

それを保存する別のリストを作成 –

関連する問題