2017-06-20 6 views
0

ボタンがクリックされたときにアンドロイドのラジオグループから選択した複数のラジオボタン値のデータを取得する方法data..Codeは動作していますが、ボタンが送信され、データを取得していないときにスタックされています。これはあまりにも複雑であるボタンをクリックしたときにアンドロイドのラジオグループから選択された複数のラジオボタン値のデータを取得する方法

import android.os.Bundle; 
import android.app.Activity; 
import android.util.Log; 
import android.view.Menu; 
import android.view.View; 
import android.widget.Button; 
import android.widget.LinearLayout; 
import android.widget.RadioButton; 
import android.widget.RadioGroup; 
import android.widget.TextView; 
import android.widget.Toast; 
import android.widget.RadioGroup.OnCheckedChangeListener; 
import android.widget.RelativeLayout; 

public class Main9Activity extends Activity { 
    RadioGroup RG1,RG2,RG3; 
    RelativeLayout rl; 
    public String chec=""; 
    Button bt; 


    String status[] = { "Leave", "Late", "Absent", "Present" }; 
    // RadioGroup rg; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main9); 
     LinearLayout rl = (LinearLayout) findViewById(R.id.linear1); 
     // rl = (RelativeLayout) findViewById(R.id.linear1); 





     for (int k = 1; k < 4; k++) { 
      final RadioButton[] rb = new RadioButton[10]; 

      // rg = new RadioGroup(this); 
      final RadioGroup rg = new RadioGroup(this); // create the RadioGroup 
      rg.setOrientation(RadioGroup.HORIZONTAL);// or RadioGroup.VERTICAL 
      final TextView name=new TextView(this); 
      String texid="16roll"+k; 
      name.setText("16roll"+k); 
      name.setId(R.id.RG2+k); 

      int n = 4; 
      for (int i = 0; i < n; i++) { 
       rb[i] = new RadioButton(this); 
       rg.addView(rb[i]); 
       // rb[i].setText("Radio " + i); 
       rb[i].setText(status[i]); 

      } 
      //rl.addView(rg); 

      rl.addView(name); 
      rl.addView(rg); 
      rl.setPadding(50, 50, 50, 50); 
      rg.setOnCheckedChangeListener(new OnCheckedChangeListener() { 
       @Override 
       public void onCheckedChanged(RadioGroup group, int checkedId) { 
// TODO Auto-generated method stub 
        int pos = rg.indexOfChild(findViewById(checkedId)); 
        //String roll="ytutyuty"; 
        String roll=name.getText().toString(); 
        switch (pos) { 
         case 0: 

          Toast.makeText(getBaseContext(), String.format("Leave" + roll), Toast.LENGTH_SHORT).show(); 

          chec="Leave"+ roll; 
          break; 
         case 1: 
          Toast.makeText(getBaseContext(), String.format("Late" +roll), Toast.LENGTH_SHORT).show(); 
          chec="Late" +roll; 
          break; 
         case 2: 
          Toast.makeText(getBaseContext(), String.format("Absent" +roll), Toast.LENGTH_SHORT).show(); 
          chec="Absent" +roll; 
          break; 
         default: 
          Toast.makeText(getApplicationContext(), String.format("Present" +roll), Toast.LENGTH_SHORT).show(); 
          chec="Present" +roll; 
          break; 
        } 
       } 
      }); 
     } 
     // Toast.makeText(getBaseContext(), String.format(chec), Toast.LENGTH_SHORT).show(); 
     // @Override 
     //public boolean onCreateOptionsMenu(Menu menu) { 
     // getMenuInflater().inflate(R.menu.activity_main, menu); 
     // return true; 
     // } 


     bt= (Button) findViewById(R.id.button2); 
     bt.setOnClickListener(new View.OnClickListener() { 

      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       Toast.makeText(getBaseContext(), String.format(chec), Toast.LENGTH_SHORT).show(); 
       // 
      } 
     }); 


    } 
} 

答えて

0

:ここ

はコードです。アクティビティのXMLレイアウトにradiogroupを含めるだけです。

次に、ボタンのクリック時に、onClick属性をアクティビティ内の関数に設定します。そこには、ラジオグループのルックアップ操作を行います。 int idOfSelected = rg.getCheckedRadioButtonId();

今、あなたは1が選択されているスイッチの場合の操作を行うことができます:

switch(idOfSelected) { 
    case R.id.radio1: 
     // Do stuff 
     break; 
} 

などそして、これを使用

RadioGroup rg = (RadioGroup) findViewById (R.id.id_of_the_group);

。等。

+0

ありがとうございますが、私はラジオグループ内に動的なラジオボタンを生成しています... – egom

+0

@egom答えの残りはまだ有効です(選択方法) – Aenadon

関連する問題