RadioGroup(单选按钮)将自动选中

时间:2014-09-18 16:35:25

标签: android radio-button radio-group

我在我的应用程序10中有单选按钮的多项选择题。 当我现在选择没有答案并转到下一个问题时,应用程序将第一个值保存为选中并执行setOnCheckedChangeListener。

protected void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_questions);

    sHelper = new SystemHelper(getApplicationContext());

    db = new databaseHandler(getApplicationContext());
    user = new UserClass(getApplicationContext());
    user.makeUserFromShared();

    osGroup = (RadioGroup) findViewById(R.id.osGroup);
    question = (TextView) findViewById(R.id.question);
    questionNr = (TextView) findViewById(R.id.questionNr);
    left = (TextView) findViewById(R.id.left);
    right = (TextView) findViewById(R.id.right);
    scroll = (ScrollView) findViewById(R.id.scroll);
    one = (RadioButton) findViewById(R.id.one);
    two = (RadioButton) findViewById(R.id.two);
    three = (RadioButton) findViewById(R.id.three);
    four = (RadioButton) findViewById(R.id.four);


    osGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener(){
        public void onCheckedChanged(RadioGroup group, int checkedId) {
            Log.d("Save",String.valueOf(checkedId));
            switch (checkedId){
                case -1:
                    break;
                case R.id.one:
                    setAnswer(0);
                    break;
                case R.id.two:
                    setAnswer(1);
                    break;
                case R.id.three:
                    setAnswer(2);
                    break;
                case R.id.four:
                    setAnswer(3);
                    break;
                default:
                    break;
            }
        }
    });
}

public void setAnswer(int aPos){
    int qPos =  ((globals) this.getApplication()).getQesNr();
    classQuestion quest = questions.get(qPos);
    ArrayList<classAnswer> answers = db.getAnswers(quest.getFbid());
    questions.get(((globals) getApplication()).getQesNr()).setAnswer(answers.get(aPos).getFbid());
    db.saveAnswer(quest.getFbid(),answers.get(aPos).getFbid());
}

public void goRight(View view){
    int pos =  ((globals) this.getApplication()).getQesNr() + 1;
    ((globals) this.getApplication()).setQesNr(pos);
    setQuestion(questions);
}

public void goLeft(View view){
    int pos =  ((globals) this.getApplication()).getQesNr() - 1;
    ((globals) this.getApplication()).setQesNr(pos);
    setQuestion(questions);
}

public void goRightSwipe(){
    if(((globals) this.getApplication()).getQesNr() < 9 ){
        int pos =  ((globals) this.getApplication()).getQesNr() + 1;
        ((globals) this.getApplication()).setQesNr(pos);
        setQuestion(questions);
    }
}

public void goLeftSwipe(){
    if(((globals) this.getApplication()).getQesNr() != 0 ){
        int pos =  ((globals) this.getApplication()).getQesNr() - 1;
        ((globals) this.getApplication()).setQesNr(pos);
        setQuestion(questions);
    }
}

XML文件

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    tools:context="de.skverlag.fortbildungrettungsdienst.questions"
    android:padding="10dp">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="24sp"
        android:text=""
        android:id="@+id/questionNr"
        android:layout_centerHorizontal="true"
        android:layout_alignParentTop="true"
        android:layout_centerVertical="true"
        android:layout_marginBottom="10dp"
        android:textColor="@color/white"
        android:gravity="center"/>

    <TextView
        android:layout_width="40dp"
        android:layout_height="40dp"
        android:textSize="24sp"
        android:text="@string/left"
        android:id="@+id/left"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_centerVertical="true"
        android:textColor="@color/white"
        android:clickable="true"
        android:onClick="goLeft"
        />

    <TextView
        android:layout_width="40dp"
        android:layout_height="40dp"
        android:textSize="24sp"
        android:text="@string/right"
        android:id="@+id/right"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:layout_centerVertical="true"
        android:textColor="@color/white"
        android:clickable="true"
        android:onClick="goRight"
        android:gravity="right"/>

    <View
        android:id="@+id/seperator"
        android:layout_width="fill_parent"
        android:layout_height="1px"
        android:background="@android:color/background_light"
        android:layout_below="@id/questionNr"/>

    <ScrollView
        android:id="@+id/scroll"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@id/seperator"
        android:layout_marginTop="10dp">

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <TextView
                android:id="@+id/question"
                android:text=""
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:textSize="18sp"
                android:textColor="@color/white"/>

            <RadioGroup
                android:id="@+id/osGroup"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/question"
                android:layout_alignParentLeft="true"
                android:layout_alignParentStart="true"
                android:layout_marginTop="20dp">

                <RadioButton
                    android:id="@+id/one"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text=""
                    android:textSize="16sp"
                    android:padding="7dp"
                    android:textColor="@color/white"
                    android:layout_marginTop="20dp"
                    android:background="@color/blacktrans"/>

                <RadioButton
                    android:id="@+id/two"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:padding="7dp"
                    android:text=""
                    android:textSize="16sp"
                    android:textColor="@color/white"
                    android:background="@color/blacktrans"
                    android:layout_marginTop="20dp" />

                <RadioButton
                    android:id="@+id/three"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:padding="7dp"
                    android:text=""
                    android:textSize="16sp"
                    android:textColor="@color/white"
                    android:background="@color/blacktrans"
                    android:layout_marginTop="20dp" />

                <RadioButton
                    android:id="@+id/four"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:padding="7dp"
                    android:text=""
                    android:textSize="16sp"
                    android:textColor="@color/white"
                    android:background="@color/blacktrans"
                    android:layout_marginTop="20dp" />
            </RadioGroup>
        </RelativeLayout>
    </ScrollView>
</RelativeLayout>

1 个答案:

答案 0 :(得分:0)

使用clearCheck()取消选中所有按钮。

清除选择。清除选择后,不会选择此组中的单选按钮,getCheckedRadioButtonId()将返回null。

如果没有选中radiobuttons,则编写方法doSomething()。