1

私はアンドロイドクイズアプリケーションに取り組んでいます。私の画面では、次のボタンで質問とオプション(静的に4つのラジオボタン)を表示しています。つまり、次のボタンをもう一度クリックすると、次の質問とそのオプションが表示されます。実際に私は文字列を持っています

 str = |ques1@opid1@option1@opid2@option2@opid3@option3@opid4@opotion4|ques2@opid1@option1@opid2@option2@opid3@option3@opid4@opotion4|ques3@opid1@option1@opid2@option2@opid3@option3@opid4@opotion4 

ここで、str 配列を「|」で分割しました。そして、データをstr1に保存しました。そう、

str1[1] = ques1@opid1@option1@opid2@option2@opid3@option3@opid4 str1[2] = ques2@opid1@option1@opid2@option2@opid3@option3@opid4 .........

Now again I splitted the str1 array with "@" and stored the data in str2.
So,

 str2[0] = ques1
          str2[1] = opid1
    str2[2] = option1
    str2[3] = opid2
    str2[4] = option2
    str2[5] = opid3
    str2[6] = option3
    str2[7] = opid4
    str2[8] = option4

So after getting these values i am setting it to 
tv.setText(str2[0]);
answer1.setText(str2[2]);
answer2.setText(str2[4]);
answer3.setText(str2[6]);
answer4.setText(str2[8]);

次に、次のボタン クリック アクションで、次のコードを記述しました。

int i = 1;
public void next(View v) {

    if (i < str1.length - 1) {
        i++;
        str3 = str1[i].trim().split("[@]");             
        tv.setText(str3[0]);            
        answers.check(-1);
        answer1.setText(str3[2]);
        answer2.setText(str3[4]);
        answer3.setText(str3[6]);
        answer4.setText(str3[8]);       
    }

ここまではすべて順調です。次の要件は、選択したオプション値を取得して配列に格納することです。また、選択したラジオ ボタンにオプション ID 値を設定し、その ID 値を再度取得する必要があります。つまり、最初の質問で 2 番目のラジオ ボタンを選択したと仮定して、そのオプション ID を radiobtn.setid(opid2) として設定し、選択したラジオ ボタン ID を取得したいとします。ラジオボタンを静的に保持しているため、ラジオボタンにIDを設定および取得する方法と、ラジオボタンにonclickアクションを書き込む方法がわかりません。私はこれに苦労しています。どんな助けでも本当に感謝します。

4

2 に答える 2

0

このように使用してください。

    if(arg0==btnnext)
    {
    Log.v(TAG+"onClick", "onClick method call");
    //btnback.setVisibility(View.VISIBLE);

    if(rboption1.isChecked())
    {
        Log.v(TAG+".onClick", "option 1 selected");

        check=1;
    }
    else if(rboption2.isChecked())
    {
        Log.v(TAG+".onClick", "option 2 selected");
        check=2;
    }
    else if(rboption3.isChecked())
    {
        Log.v(TAG+".onClick", "option 3 selected");
        check=3;
    }

    else if(rboption4.isChecked())
    {
        Log.v(TAG+".onClick", "option 4 selected");
        check=4;
    }

    else
    {
        Log.v(TAG+".onClick", "No any option is selected");
        check=0;
    }

    if(Integer.parseInt(answer1)==check)
    {
        correctans++;
        Log.v(TAG+"onClick", "Correct answer are:" + correctans);
    }
    else if(check == 0)
    {
        unattempted++;
        Log.v(TAG+"onClick", "unattempted questions:" + unattempted);

    }
    else 
    {
        incorrectans++;
        Log.v(TAG+"onClick", "Wrong answer are:" + incorrectans);
    }

    atempted= correctans+incorrectans;
    attemptedquestions.setText("Attempted : "+atempted);
    // insert into table where that select the 

    index++;

    if(i++ < (list1.size()-1))
    {
        questionanswerbean=list1.get(i);
        Question=questionanswerbean.getQuestion_text();
        Option1=questionanswerbean.getAnswer_choice_1();
        Option2=questionanswerbean.getAnswer_choice_2();
        Option3=questionanswerbean.getAnswer_choice_3();
        Option4=questionanswerbean.getAnswer_choice_4();
            Log.v(TAG+".Oncraete", "Viewing Question ->" + Question);
            Log.v(TAG+".Oncraete", "Viewing Option1 ->" + Option1);
            Log.v(TAG+".Oncraete", "Viewing Option2 ->" + Option2);
            Log.v(TAG+".Oncraete", "Viewing Option3 ->" + Option3);
            Log.v(TAG+".Oncraete", "Viewing Option4 ->" + Option4);

               if ((Question != null) && !Question.trim().equals("")) {
                    question.setText("Question: " +index +":     " + Question.trim());
                }

                if ((Option1 != null) && !Option1.trim().equals("")) {

                    rboption1.setText(Option1.trim());
                }

                if ((Option2 != null) && !Option2.trim().equals("")) {

                    rboption2.setText(Option2.trim());
                }

                if ((Option3 != null) && !Option3.trim().equals("")) {

                    rboption3.setText(Option3.trim());
                }
                if ((Option4 != null) && !Option4.trim().equals("")) {

                    rboption4.setText(Option4.trim());
                }   

                radiogroup.clearCheck();

            }
于 2013-04-16T09:48:51.677 に答える