簡體   English   中英

如何在Android中的上一個按鈕上設置選中的單選按鈕?

[英]How to set checked Radio Button on Previous Button in Android?

嗨,我是Android的初學者。 我已經實現了一個項目,其中包括問題和答案選項,以及單選按鈕和上一個和下兩個按鈕。

1)我有使用xml解析器

2)當我選擇答案選項時,按下單選按鈕,然后單擊同一活動上其下一個出現的下一個問題。

3)當我按下上一個按鈕時,它會轉到同一活動上帶有答案選項單選按鈕的上一個問題。

現在我想在單擊我選擇的上一個按鈕的上一個問題時轉到android中的“單選按鈕簽入”。 有人可以幫我怎么辦。謝謝。

這是我的代碼。

public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.questions_screen);

        databaseHelper = new DatabaseHelper(this);
        databaseHelper.onOpen(sqdb);

        mAnimation = new AlphaAnimation(1.0F, 0.0F);
        mAnimation.setDuration(200L);
        mAnimation.setInterpolator(new LinearInterpolator());
        mAnimation.setRepeatCount(-1);
        mAnimation.setRepeatMode(2);


        txtViewQuestiontype = (TextView)findViewById(R.id.QuestionType_TXT);
        txtViewQuestion = (TextView)findViewById(R.id.Question_TXT);

        Options_RadioGroup = (RadioGroup)findViewById(R.id.RDOptions);
        AnswerOptionsA_RadioButton = (RadioButton)findViewById(R.id.RBOption_A);
        AnswerOptionsB_RadioButton = (RadioButton)findViewById(R.id.RBOption_B);
        AnswerOptionsC_RadioButton = (RadioButton)findViewById(R.id.RBOption_C);
        AnswerOptionsD_RadioButton = (RadioButton)findViewById(R.id.RBOption_D);

          button_CheckAnswer = (Button)findViewById(R.id.Button_Check_Answer_BTN);
          button_Previouse = (Button)findViewById(R.id.Button_Previous_BTN);
          button_Next  = (Button)findViewById(R.id.Button_Next_BTN);
          button_QuestionLimit = (Button)findViewById(R.id.Btn_QuestionLimit);
          button_Home = (Button)findViewById(R.id.btnHome);

         read_Questions_XML_File();

          button_Previouse.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    previousQuestionCalled(v);
                }
            });


            button_Next.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    storingResult(); 
                    nextQuestionCalled(v);
                }
            });
    }

    public void storingResult()
    {
        int id = Options_RadioGroup.getCheckedRadioButtonId();
        System.out.println("id = " + id);

        if (id > 0)
        {
            AnswerOptions = (RadioButton) findViewById(Options_RadioGroup
                    .getCheckedRadioButtonId());

            String str_AnswerOptions = AnswerOptions.getText().toString()
                    .trim();
            System.out.println("rbVal = " + str_AnswerOptions);

            if (str_AnswerOptions
                    .equals(((Datastructure) Vectore_mquestionDatabaseStructure
                            .get(StaticClass.QuestionNumber)).Answer))
            {
                // Not StaticClass.isTest = false
                if (!StaticClass.isTest)

                {


                    String str_queNo = button_QuestionLimit.getText()
                            .toString().trim();
                    String strstrqueType = txtViewQuestiontype.getText()
                            .toString().trim();
                    String str_que = txtViewQuestion.getText().toString()
                            .trim();
                    String str_marks = "1";

                    databaseHelper.insertQueDetails(str_queNo, strstrqueType,
                            str_que, str_AnswerOptions, str_marks);

                    Toast.makeText(getApplicationContext()," Data Crated Right Succesfully ",Toast.LENGTH_SHORT).show();
                }

                if (StaticClass.isTest)
                {
                    StaticClass.resultOfTest = 1 + StaticClass.resultOfTest;
                    ((Datastructure) Vectore_mquestionDatabaseStructure
                            .elementAt(StaticClass.QuestionNumber))
                            .setResult_Of_Test(true);
                    return;
                }

            }
        }

        else if (id == -1)
        {
            Toast.makeText(this, "Please Select Any Option", Toast.LENGTH_LONG)
                    .show();
            try 
            {
                if (StaticClass.isTest)
                {
                    ((Datastructure) Vectore_mquestionDatabaseStructure
                            .elementAt(StaticClass.QuestionNumber))
                            .setResult_Of_Test(false);
                }

                if (!StaticClass.isTest)
                {
                    Toast.makeText(getApplicationContext(), "Wrong",
                            Toast.LENGTH_SHORT).show();
                }

                ((Datastructure) Vectore_mquestionDatabaseStructure
                        .get(StaticClass.QuestionNumber))
                        .setResult_Of_Test(false);

                return;
            }

            catch (Exception exception)
            {
                exception.printStackTrace();
            }
        }

    }


    public void nextQuestionCalled(View view)
    {
        //if animationForward == false
        if (animationForward)
        {
            //flag = false
            boolean flag;
            if (animationForward)
            {  flag = false; }

            else { flag = true;}

            animationForward = flag;
        }
        //Return The Number Of Element in this Vector > 0
        //-1 + 1
        if (-1 + Vectore_mquestionDatabaseStructure.size() > StaticClass.QuestionNumber)
        {
            //If StaticClass.isTest == false
            if (StaticClass.isTest) 
            {
                StaticClass.resultOfTest_Out_OF = 1 + StaticClass.resultOfTest_Out_OF;
                storingResult();
            }
            StaticClass.QuestionNumber = 1 + StaticClass.QuestionNumber;
            reHitting();

            view.clearAnimation();
            if (!StaticClass.isTest) {
                button_QuestionLimit.clearAnimation();
            }

            if (StaticClass.isTest) {
                button_QuestionLimit.clearAnimation();
            }

            return;
        }

        else
        {
            button_QuestionLimit.startAnimation(mAnimation);
            return;
        }
    }






    public void syoutF()
    {
        addVallues();
    }

    public void previousQuestionCalled(View view)
    {
        if (!animationForward)
        {
            boolean flag;

            if (animationForward) 
            {
                flag = false;
            }
            else
            {
                flag = true;
            }
            animationForward = flag;
        }
        if (StaticClass.QuestionNumber > 0)
        {
            if (!StaticClass.isTest)
            {
                StaticClass.QuestionNumber = -1 + StaticClass.QuestionNumber;
                reHitting();
                button_QuestionLimit.clearAnimation();
            }
            view.clearAnimation();

        } 
        else 
        {
            button_QuestionLimit.startAnimation(mAnimation);
        }

    }


    @SuppressLint("NewApi")
    public void reHitting() {
        addVallues();
        if (!animationForward)
        {
            overridePendingTransition(R.anim.anim_in,R.anim.anim_out);
            return;
        } 
        else 
        {
            overridePendingTransition(R.anim.anim_in,R.anim.anim_out);
            return;
        }
    }

    public void addVallues() {
        try {
            txtViewQuestiontype.setText(((Datastructure) Vectore_mquestionDatabaseStructure
                    .get(StaticClass.QuestionNumber)).Question_Type);

            txtViewQuestion.setText(((Datastructure) Vectore_mquestionDatabaseStructure
                    .get(StaticClass.QuestionNumber)).Question);

            AnswerOptionsA_RadioButton.setText(((Datastructure) Vectore_mquestionDatabaseStructure
                    .get(StaticClass.QuestionNumber)).OptionA);

            AnswerOptionsB_RadioButton.setText(((Datastructure) Vectore_mquestionDatabaseStructure
                    .get(StaticClass.QuestionNumber)).OptionB);

            AnswerOptionsC_RadioButton.setText(((Datastructure) Vectore_mquestionDatabaseStructure
                    .get(StaticClass.QuestionNumber)).OptionC);

            AnswerOptionsD_RadioButton.setText(((Datastructure) Vectore_mquestionDatabaseStructure
                    .get(StaticClass.QuestionNumber)).OptionD);
            QuestionLimitFetcher();
            Options_RadioGroup.clearCheck();
            return;
        } catch (ArrayIndexOutOfBoundsException arrayindexoutofboundsexception) {
            arrayindexoutofboundsexception.printStackTrace();
        }
    }


    public void QuestionLimitFetcher() {
        int i = Vectore_mquestionDatabaseStructure.size();
        button_QuestionLimit.setText((new StringBuilder(String.valueOf(1 + StaticClass.QuestionNumber)))
                                                               .append("/").append(i).toString());

        String strLimit = button_QuestionLimit.getText().toString().trim();
        System.out.println("strLimit = " + strLimit);
    }



    public void read_Questions_XML_File()
    {

        Bundle extras = getIntent().getExtras();
        String string_Chapter_Title = extras.getString("TOPIC_TITLE");
        System.out.println("value1 = " + string_Chapter_Title);

        try
            {
                if (string_Chapter_Title.equals("OOPs concepts"))
                {
                    String encodedXML = URLEncoder.encode("collections.xml");
                    db = SAXXMLParser.parse(getAssets().open(encodedXML));
                    i = Vectore_mquestionDatabaseStructure.size();
                    System.out.println("Vector Size i" + i);

                    int lastIndex = Vectore_mquestionDatabaseStructure.lastIndexOf(db.lastElement());
                    System.out.println("lastIndex = " + lastIndex);



                }

                else if (string_Chapter_Title.equals("Java virtual machine"))
                {
                    String encodedXML = URLEncoder.encode("java_keyword.xml");
                    db = SAXXMLParser.parse(getAssets().open(encodedXML));
                    i = Vectore_mquestionDatabaseStructure.size();
                    System.out.println("Vector Size i" + i);

                    System.out.println("Last element: " + (Integer)Vectore_mquestionDatabaseStructure.lastElement()); 
                }

            } 
            catch (IOException ioexception)
            {
                ioexception.printStackTrace();
            } 

            catch (SAXException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } 

            catch (ParserConfigurationException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            syoutF();
        }

    }

您可以將已標出答案的答案保存在共享首選項中,以問題編號表示,表示問題編號或任何其他與問題相關的有效唯一鍵作為共享首選項的鍵

喜歡

editor.put("Q1",1);  // editor.put(QuestionNo, AnswerNumber);

現在,當您返回時,首先檢查此問題是否具有共享的“首選項”中的鍵,如果是,請根據保存的answerNumber檢查單選按鈕。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM