2011-11-29 65 views
3

我正在android上测验应用程序。我们创建了Select.java页面,该页面显示来自sqlite数据库的问题和选项(带单选按钮)。我们还创建了一个header.java文件,用于显示Select.java页面的按钮,即返回按钮和下一个按钮。如何获得Android中选定单选按钮的ID?

enter image description here

在这里,我们需要让选定的单选按钮的id和需要发送给头类。由于头类由下一个按钮onclick动作组成。点击下一个按钮后,所选单选按钮值必须存储在arraylist中。我们在Select.java类中创建了单选按钮。所以我的问题是如何让选定的单选按钮ID进入下一个按钮单击操作。请帮助我解决这个问题。

在此先感谢。

+0

http://www.androidpeople.com/android-radiobutton-example –

+0

嗨,我已经通过该链接。但是我们的疑问是我们在Select.java中创建了单选按钮,而我们的按钮单击操作在Header类中。现在我怎么能得到选定的单选按钮ID?请帮帮我。 – RaagaSudha

+0

请发布您的代码。 – Ian

回答

5

您的布局xml文件应该是这样的

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 

    <RadioGroup 
    android:orientation="vertical" 
    android:id="@+id/radiogroup" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    > 
    <RadioButton 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/option1" 
     android:text="Option1" 
    /> 
    <RadioButton 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/option2" 
     android:text="Option2" 
    /> 
    <RadioButton 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/option3" 
     android:text="Option3" 
    /> 
    <RadioButton 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/option4" 
     android:text="Option4" 
    /> 
    <RadioButton 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/option5" 
     android:text="Option5" 
    /> 
    </RadioGroup> 
</LinearLayout> 

添加下面的颂歌在活动

RadioGroup radioGroup = (RadioGroup) findViewById(R.id.radiogroup); 
     radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { 

      @Override 
      public void onCheckedChanged(RadioGroup group, int checkedId) 
      { 
       RadioButton checkedRadioButton = (RadioButton) findViewById(checkedId); 
       String text = checkedRadioButton.getText().toString(); 
       Toast.makeText(getApplicationContext(), text, Toast.LENGTH_SHORT).show(); 
      } 
     }); 
+0

select.java代码http://pastebin.com/xY86sZFx和header.java http://pastebin.com/XFwBbhQ7 – RaagaSudha

0

嗯,刚刚在UserBO增加一个成员变量来存储选择回答。

Class UserBO { 

private int userID; 
private String userName; 
private String question; 
private String option1; 
private String option2; 
private String option3; 

private int answerID; 

//create getter and setters for above member variables 
} 

然后Adapter类的onclick侦听器内,不喜欢如下

radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { 

     @Override 
     public void onCheckedChanged(RadioGroup radioGroup, 
       int radioButtonID) { 
     switch(radioButtonID) { 
       case R.id.option1: 
         listItem.setAnswerID(1); 
      break; 
     case R.id.option2: 
       listItem.setAnswerID(2); 
      break; 

       } 
     } 
    }); 

然后改变你的头部构造器接收userarraylist(其中包含与解答用户的详细信息)

ArrayList<USerBO> userList; 
Header(Context context, AttributeSet attrs, ArrayList<UserBO> userALt) { 
userList = userAL; 
} 

//on next button click 

onclick() { 
    for(UserBO userObj: userList) { 
     if (userObj.getAnswerID != 0) 
     Log.d("AnswerID", userObj.getAnswerID); 
    } 
} 

它就像sudo代码..我希望这会帮助你..

1
final RadioGroup radioGroup = (RadioGroup) findViewById(R.id.MyRadioGroup); 

radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { 

    @Override 
    public void onCheckedChanged(RadioGroup arg0, int arg1) { 
     int selectedId = radioGroup.getCheckedRadioButtonId(); 
     Log.i("ID", String.valueOf(selectedId)); 

    } 
}); 
0

您可以通过以下this。在这里得到选择按钮的ID

int position = group.indexOfChild(radioButton); 

会给你id.Also你可以举杯看到ID这样

Toast.makeText(MainActivity.this,"Id of radio button"+position+, Toast.LENGTH_SHORT).show(); 

此时会弹出 - 如果点击第一个按钮,则“单击按钮的ID为0”。

相关问题