Android 如何从无线电组获取已检查无线电的id

Android 如何从无线电组获取已检查无线电的id,android,android-layout,android-radiogroup,android-radiobutton,Android,Android Layout,Android Radiogroup,Android Radiobutton,我已经创建了动态单选组,因为每个组都有三个单选按钮,所以选中更改侦听器如何在单选组中获取单选按钮的id…提前感谢 public class Rate_me_up extends Activity implements OnClickListener, OnCheckedChangeListener { LinearLayout layout; @Override protected void onCreate(Bundle savedInstan

我已经创建了动态单选组,因为每个组都有三个单选按钮,所以选中更改侦听器如何在单选组中获取单选按钮的id…提前感谢

    public class Rate_me_up extends Activity implements OnClickListener,
        OnCheckedChangeListener {
    LinearLayout layout;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.rate_me_up);
        layout = (LinearLayout) findViewById(R.id.linear);
        Button btnp = (Button) findViewById(R.id.buttonp);
        btnp.setOnClickListener(this);

    }

    @Override
    public void onClick(View v) {
        RadioGroup radioGroup = new RadioGroup(Rate_me_up.this);
        radioGroup.setOrientation(1);

        LinearLayout.LayoutParams p = new LinearLayout.LayoutParams(
                LinearLayout.LayoutParams.WRAP_CONTENT,
                LinearLayout.LayoutParams.WRAP_CONTENT);
        layout.addView(radioGroup, p);
        RadioButton radioButtonView = new RadioButton(Rate_me_up.this);
        radioButtonView.setText("RadioButton");
        radioButtonView.setChecked(false);
        radioGroup.addView(radioButtonView, p);

        RadioButton radioButtonView2 = new RadioButton(Rate_me_up.this);
        radioButtonView2.setText("RadioButton2");
        radioButtonView2.setChecked(false);
        radioGroup.addView(radioButtonView2, p);
        RadioButton radioButtonView3 = new RadioButton(Rate_me_up.this);
        radioButtonView3.setText("RadioButton2");
        radioGroup.addView(radioButtonView3, p);
        radioButtonView3.setChecked(false);
        radioGroup.setOnCheckedChangeListener(this);

    }

    @Override
    public void onCheckedChanged(RadioGroup group, int checkedId) {

    }

}
字段签入

@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
}
会给你检查过的radioButton的id

编辑:

这样做:

@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {

switch(checkedId){
   case R.id.radio1: //assumed id of radioButton1
   //statements
   break;

   case R.id.radio2:
   .
   break; //so on
 }
}
对于动态单选按钮,通过从那里获取id进行比较 比如radioButton1.getId()

这将帮助您:

int index = myRadioGroup.indexOfChild(findViewById(myRadioGroup.getCheckedRadioButtonId()));

首先通过
setId()
设置
单选按钮的id

@Override
        public void onClick(View v) {
            RadioGroup radioGroup = new RadioGroup(Rate_me_up.this);
            radioGroup.setOrientation(1);

            LinearLayout.LayoutParams p = new LinearLayout.LayoutParams(
                    LinearLayout.LayoutParams.WRAP_CONTENT,
                    LinearLayout.LayoutParams.WRAP_CONTENT);
            layout.addView(radioGroup, p);
            RadioButton radioButtonView = new RadioButton(Rate_me_up.this);
            radioButtonView.setId(1);
            radioButtonView.setText("RadioButton");
            radioButtonView.setChecked(false);
            radioGroup.addView(radioButtonView, p);

            RadioButton radioButtonView2 = new RadioButton(Rate_me_up.this);
            radioButtonView.setId(2);
            radioButtonView2.setText("RadioButton2");
            radioButtonView2.setChecked(false);
            radioGroup.addView(radioButtonView2, p);

            RadioButton radioButtonView3 = new RadioButton(Rate_me_up.this);
            radioButtonView.setId(3);
            radioButtonView3.setText("RadioButton2");
            radioGroup.addView(radioButtonView3, p);
            radioButtonView3.setChecked(false);
            radioGroup.setOnCheckedChangeListener(this);

        }

        @Override
        public void onCheckedChanged(RadioGroup group, int checkedId) {

        switch (checkedId) {
                case 1:
                    // first radiobutton is clicked
                    break;
                case 2:
                    // second radiobutton is clicked
                    break;
                case 3:
                    // third radiobutton is clicked
                    break;


                default:
                    break;
        }

将Radiobutton值转换为字符串

这就是你需要尝试的方式

在onClick上:

genradiocheck();
radiovalue =  radiobutton1.getText().toString();
`


希望这能有所帮助。

在尝试获取id之前,您需要设置id。使用下面的代码

   @Override
public void onClick(View v) {
    RadioGroup radioGroup = new RadioGroup(Rate_me_up.this);
    radioGroup.setOrientation(1);

    LinearLayout.LayoutParams p = new LinearLayout.LayoutParams(
            LinearLayout.LayoutParams.WRAP_CONTENT,
            LinearLayout.LayoutParams.WRAP_CONTENT);
    layout.addView(radioGroup, p);
    RadioButton radioButtonView = new RadioButton(Rate_me_up.this);
    radioButtonView.setId(1);
    radioButtonView.setText("RadioButton");
    radioButtonView.setChecked(false);
    radioGroup.addView(radioButtonView, p);

    RadioButton radioButtonView2 = new RadioButton(Rate_me_up.this);
    radioButtonView.setId(2);
    radioButtonView2.setText("RadioButton2");
    radioButtonView2.setChecked(false);
    radioGroup.addView(radioButtonView2, p);
    RadioButton radioButtonView3 = new RadioButton(Rate_me_up.this);
    radioButtonView.setId(3);
    radioButtonView3.setText("RadioButton2");
    radioButtonView3.setChecked(false);
    radioGroup.addView(radioButtonView3, p);
    radioGroup.setOnCheckedChangeListener(this);

}

@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
Toast.makeText(Rate_me_up.this, "id : "+checkedId, Toast.LENGTH_SHORT).show();//or you can also get the id by using group.getCheckedRadioButtonId()
}

首先通过
setId()
方法设置
RadioButton
的id。完成后,
onCheckedChanged
中的如何获取id…
checkedId
将返回选中的
RadioButton
的id。当您想要获取收音机id时,单击按钮或单选按钮我已经发布了简单的答案,我想你必须搜索,这是一个基本问题,就像他已经在
onClick
的最后一行设置了
setoncheckedchangelister
。请解释一下你的确切意思。我的意思是,您知道将生成多少个单选按钮,或者它完全取决于运行时的用户操作吗?
    private boolean genradiocheck()
  {
    boolean gender_flag = false;

    if (r_group.getCheckedRadioButtonId() == -1) 
    {
      //
    } 
    else 
    {
        radiobutton1 = (RadioButton) findViewById(r_group
                  .getCheckedRadioButtonId());

     gender_flag = true;
    }

    return gender_flag;
  }
   @Override
public void onClick(View v) {
    RadioGroup radioGroup = new RadioGroup(Rate_me_up.this);
    radioGroup.setOrientation(1);

    LinearLayout.LayoutParams p = new LinearLayout.LayoutParams(
            LinearLayout.LayoutParams.WRAP_CONTENT,
            LinearLayout.LayoutParams.WRAP_CONTENT);
    layout.addView(radioGroup, p);
    RadioButton radioButtonView = new RadioButton(Rate_me_up.this);
    radioButtonView.setId(1);
    radioButtonView.setText("RadioButton");
    radioButtonView.setChecked(false);
    radioGroup.addView(radioButtonView, p);

    RadioButton radioButtonView2 = new RadioButton(Rate_me_up.this);
    radioButtonView.setId(2);
    radioButtonView2.setText("RadioButton2");
    radioButtonView2.setChecked(false);
    radioGroup.addView(radioButtonView2, p);
    RadioButton radioButtonView3 = new RadioButton(Rate_me_up.this);
    radioButtonView.setId(3);
    radioButtonView3.setText("RadioButton2");
    radioButtonView3.setChecked(false);
    radioGroup.addView(radioButtonView3, p);
    radioGroup.setOnCheckedChangeListener(this);

}

@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
Toast.makeText(Rate_me_up.this, "id : "+checkedId, Toast.LENGTH_SHORT).show();//or you can also get the id by using group.getCheckedRadioButtonId()
}