переключатели, показывающие только первый вариант правильно, а остальные показывают все неправильные данные в Android - PullRequest
0 голосов
/ 11 января 2012

В моей игре "Ответы на вопросы" я показываю вопросы и ответы из файла базы данных.вопрос в текстовом виде, а ответы в radiobuttons.no данные показывают точно так, как я хотел, но когда я выбираю данные, только первый вариант переключателя выбирает как правильный ответ, только если это правильный answer.myкод в mainacctivity выглядит следующим образом: showQuestion = (TextView) findViewById (R.id.tvQuestions);showAnswer = (TextView) findViewById (R.id.tvShowAnswer);

    radioGroup = (RadioGroup) findViewById(R.id.radioGroup1);
     r0 = (RadioButton) findViewById(R.id.radio0);
    r1 = (RadioButton) findViewById(R.id.radio1);
    r2 = (RadioButton) findViewById(R.id.radio2);
    r3 = (RadioButton) findViewById(R.id.radio3);
    bsubmit = (Button) findViewById(R.id.bsubmit);
    bsubmit.setOnClickListener(this);

              String shoow = myDb.makeatext(levels, Qno);
    String showextra1 = myDb.makeExtra1(levels, Qno);
    String showextra2 = myDb.makeExtra2(levels, Qno);
    String showextra3 = myDb.makeExtra3(levels, Qno);
    String showextra4 = myDb.makeExtra4(levels, Qno);

    // String showextra4 =myDb.makeanswers(levels, Qno);

    showQuestion.setText(shoow);
    r0.setText(showextra1);

    r1.setText(showextra2);

    r2.setText(showextra3);

    r3.setText(showextra4);

и в методе onclick (), который пытается проверить данные, но показывает только первый радиокнопочный ответ, если данные вернытолько правильно.

public void onClick(View v) {
    strat = System.currentTimeMillis();
    data = myDb.makeanswers(levels, Qno);
    // TODO Auto-generated method stub
    switch (v.getId()) {
    case R.id.bsubmit:
        if (r0.isChecked() == true)

        {
            if (r0.getText().toString().equalsIgnoreCase(data)) {
                showAnswer.setText("your answer is correct:" +r0.getText());

            } else {
                showAnswer.setText("your answer is wrong.the answer is:"
                        + data);

            }
        }
        if (r1.isChecked() == true)

        {
            if (r1.getText().toString().equalsIgnoreCase(data)) {
                showAnswer.setText("your answer is correct:" + r1.getText());

            } else {
                showAnswer.setText("your answer is wrong.the answer is:"
                        + data);

            }

        }
        if (r2.isChecked() == true)

        {
            if (r2.getText().toString().equalsIgnoreCase(data)) {
                showAnswer.setText("your answer is correct:" + r2.getText());

            } else {
                showAnswer.setText("your answer is wrong.the answer is:"
                        + data);

            }

        }
        if (r3.isChecked() == true)

        {
            if (r3.getText().toString().equalsIgnoreCase(data)) {
                showAnswer.setText("your answer is correct:" + r3.getText());

            } else {
                showAnswer.setText("your answer is wrong.the answer is:"
                        + data);

            }
        }}}

PLZ, помогите мне из этого я новичок в Android. Это будет большая помощь

спасибо, Мэдди.

Ответы [ 3 ]

1 голос
/ 11 января 2012

, пожалуйста, попробуйте сделать это

case R.id.save_profile:
        if(((RadioButton)findViewById(R.id.radio0)).isChecked()){
            Answer=(RadioButton)findViewById(R.id.radio0)).getText().toString();
        }
       if(((RadioButton)findViewById(R.id.radio1)).isChecked()){
            Answer=(RadioButton)findViewById(R.id.radio0)).getText().toString();
       }  

        // compare here your option......


break;  

, после этого вам нужно сравнить ответ с проверенной кнопкой.

0 голосов
/ 11 января 2012
   rb1=(RadioButton)findViewById(R.id.rb1);
   rb2=(RadioButton)findViewById(R.id.rb2);
   rb3=(RadioButton)findViewById(R.id.rb3);
   rb4=(RadioButton)findViewById(R.id.rb4);

rb1.setText("");//get from database options  
rb2.setText("");//get from database options  
rb3.setText("");//get from database options  
rb4.setText("");//get from database options  


//***********onclick of submit button{

int rd1=r_group.getCheckedRadioButtonId();
            String textt = "" ;
/************for error if not click on radio btn**********************/
            if(rd1==-1)

            {
                {   
                AlertDialog ad=new AlertDialog.Builder(Mind_Boost_First.this).create();
                ad.setTitle("error");
                ad.setMessage("plz select any radio button");
                ad.setIcon(R.drawable.cross);
                ad.setButton("ok",new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface paramDialogInterface, int paramInt) {
                        // TODO Auto-generated method stub

                    }
                });
                ad.show();
                }}  
/****************************** get radio checked to textt**************************/
            else
            {

                switch(rd1)
                {
                    case R.id.rb1:
                textt =rb1.getText().toString().trim();
                        Log.e("rrrrrrrrbbbbbbbb11111111",""+rb1.getText().toString().trim());
                        break;
                    case R.id.rb2:
                textt = rb2.getText().toString().trim();
                        Log.e("rrrrrrrrbbbbbbbb222222222",""+rb1.getText().toString().trim());
                        break;
                    case R.id.rb3:
                textt = rb3.getText().toString();
                        Log.e("rrrrrrrrbbbbbbbb3333333333",""+rb1.getText().toString().trim());
                        break;
                    case R.id.rb4:
                textt = rb4.getText().toString();
                        Log.e("rrrrrrrrbbbbbbbb4444444444",""+rb1.getText().toString().trim());
                        break;
                  }


/*get correct value in str*/

                String str=c.getString(6).trim();

                r_group.clearCheck();




                /*reset value of lable */

Это мой фрагмент кода, который идеально подходит для меня

0 голосов
/ 11 января 2012

Ваш код идеален.меня устраивает.Просто проверьте правильность поиска в вашей базе данных и метода makeanswer ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...