0

しばらくこのクイズに取り組んでいますが、質問と回答を一致させるのに苦労しています。

次の行と、回答を表示するはずの他の行は、実際には "[[ljava.lang.string;@40585b18" とわずかなバリエーションを表示します。

quesAns4.setText("4) " + answers[3]) ; 

上記の行を次のように変更してみました。

quesAns4.setText("4) " + answers[0][3]);

明らかに、答えが質問と一致するようにしたいのですが、上記の方法では配列から8つしか表示されません

 {"3","5","8","9"}

基本的に、質問を変更するたびに、それらを一致させたいと思います。質問が「時速 300 km で走行中の F1 カーが停止するのにかかる時間は秒ですか?」表示可能な回答は、4、6、8、10 などです。

ヘルプ/ガイダンスをいただければ幸いです。

以下の完全なコード!

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;



public class MathsMultiplicationActivity extends Activity {


TextView quesnum;
TextView ques;
TextView anst;
TextView ans1;
TextView ans2;
TextView ans3;
TextView ans4;
ImageView cross;
ImageView tick;
Button nxt;

    int qno = 1;
    int right_answers = 0;
    int wrong_answers = 0;
    int rnd1;
    int rnd2;

    String [] questions = {"How much mph does the F-Duct add to the car?",
              "What car part is considered the biggest performance variable?",
              "What car part is designed to speed up air flow at the car rear?",
              "In seconds, how long does it take for a F1 car to stop when travelling at 300km/h?",
              "How many litres of air does an F1 car consume per second?",
              "What car part can heavily influence oversteer and understeer?",
              "A third of the cars downforce can come from what?",
              "Around how much race fuel would be consumed per 100km?","The first high nose cone was introduced when?",
              "An increase in what, has led to the length of exhaust pipes being shortened drastically?"};

    String [] [] answers = {{"3","5","8","9"},
    {"Tyres","Front Wing","F-Duct","Engine"},
    {"Diffuser","Suspension","Tyres","Exhaust"},
    {"4","6","8","10"},
    {"650","10","75","450"},
    {"Suspension","Tyres","Cockpit","Chassis"},
    {"Rear Wing","Nose Cone","Chassis","Engine"},
    {"75 Litres","100 Litres","50 Litres","25 Litres"},
    {"1990","1989","1993","1992"},
    {"Engine RPM","Nose Cone Lengths","Tyre Size","Number of Races"}};

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.multiplechoice);

    // Importing all assets like buttons, text fields
   quesnum = (TextView) findViewById(R.id.questionNum);
   ques = (TextView) findViewById(R.id.question);
   anst = (TextView) findViewById(R.id.answertit);
   ans1 = (TextView) findViewById(R.id.answer1);
   ans2 = (TextView) findViewById(R.id.answer2);
   ans3 = (TextView) findViewById(R.id.answer3);
   ans4 = (TextView) findViewById(R.id.answer4);
   nxt = (Button) findViewById(R.id.btnNext);
   cross = (ImageView) findViewById(R.id.cross);
   tick = (ImageView) findViewById(R.id.tick);

   cross.setVisibility(View.GONE); 
   tick.setVisibility(View.GONE); 


    quesnum.setText("Question: " + qno + "/10");


    final Button buttonAbout = (Button) findViewById(R.id.btnNext);
    buttonAbout.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
         next();
        }

        private void next() {
            qno++;
            change_question();
        }

        private void change_question() {
            if(tick.getVisibility() == View.VISIBLE){
                right_answers++;
            }

            if(cross.getVisibility() == View.VISIBLE){
                wrong_answers++;
            }
            if(qno==questions.length){

            }else{
                cross.setVisibility(View.GONE); 
                tick.setVisibility(View.GONE); 
                rnd1 = (int)Math.ceil(Math.random()*3);
                rnd2 = (int)Math.ceil(Math.random()*questions.length)-1;
                ques.setText(questions[rnd2]);
                if(questions[rnd2]=="x")
                {
                    change_question();
                }
            }
            questions[rnd2]="x";




            if(rnd1==1){
                TextView quesAns1 = (TextView) findViewById(R.id.answer1); 
                quesAns1.setText("1) " + answers[0]) ;            

                TextView quesAns2 = (TextView) findViewById(R.id.answer2); 
                quesAns2.setText("2) " + answers[1]) ;   

                TextView quesAns3 = (TextView) findViewById(R.id.answer3); 
                quesAns3.setText("3) " + answers[2]) ;   

                TextView quesAns4 = (TextView) findViewById(R.id.answer4); 
                quesAns4.setText("4) " + answers[3]) ;   
            }

            if(rnd1==2){
                TextView quesAns1 = (TextView) findViewById(R.id.answer1); 
                quesAns1.setText("1) " + answers[2]) ;            

                TextView quesAns2 = (TextView) findViewById(R.id.answer2); 
                quesAns2.setText("2) " + answers[0]) ;   

                TextView quesAns3 = (TextView) findViewById(R.id.answer3); 
                quesAns3.setText("3) " + answers[1]) ;   

                TextView quesAns4 = (TextView) findViewById(R.id.answer4); 
                quesAns4.setText("4) " + answers[3]) ;  
            }
            if(rnd1==3){
                TextView quesAns1 = (TextView) findViewById(R.id.answer1); 
                quesAns1.setText("1) " + answers[1]) ;            

                TextView quesAns2 = (TextView) findViewById(R.id.answer2); 
                quesAns2.setText("2) " + answers[2]) ;   

                TextView quesAns3 = (TextView) findViewById(R.id.answer3); 
                quesAns3.setText("3) " + answers[0]) ;   

                TextView quesAns4 = (TextView) findViewById(R.id.answer4); 
                quesAns4.setText("4) " + answers[3]) ;  
            }

        }


    });


    //Answer 1 click functions
    ans1.setOnClickListener(new View.OnClickListener() {
        public void onClick(View view) {
            ans1Action();
        }

        private void ans1Action() {
            //enable_disable(0);
            if(rnd1==1){
                tick.setVisibility(View.VISIBLE); 
            }else{
                cross.setVisibility(View.VISIBLE); 
            }

        }

    });


    //Answer 2 click functions
    ans2.setOnClickListener(new View.OnClickListener() {
        public void onClick(View view) {
            ans2Action();
        }

        private void ans2Action() {
            //enable_disable(0);
            if(rnd1==2){
                tick.setVisibility(View.VISIBLE); 
            }else{
                cross.setVisibility(View.VISIBLE); 
            }

        }

    });


    //Answer 3 click functions
    ans3.setOnClickListener(new View.OnClickListener() {
        public void onClick(View view) {
            ans3Action();
        }

        private void ans3Action() {
            //enable_disable(0);
            if(rnd1==3){
                tick.setVisibility(View.VISIBLE); 
            }else{
                cross.setVisibility(View.VISIBLE); 
            }

        }

    });

    //Answer 4 click functions
    ans4.setOnClickListener(new View.OnClickListener() {
        public void onClick(View view) {
            ans4Action();
        }

        private void ans4Action() {
            //enable_disable(0);
            if(rnd1==4){
                tick.setVisibility(View.VISIBLE); 
            }else{
                cross.setVisibility(View.VISIBLE); 
            }

        }

    });
}



}
4

2 に答える 2

0

これ :

quesAns4.setText("4) " + answers[0][3]);

これが最初の質問である場合に機能します。

あなたがすべきことはchange_question、パラメータの質問の数を関数に持つことですchange_question(int questionNumber)

次に、テキストを設定するときに、次を使用します。

quesAns4.setText("4) " + answers[questionNumber][3]);

質問が 0 から始まる場合。それ以外の場合は、次を使用します。

quesAns4.setText("1) " + answers[questionNumber-1][0]);
quesAns4.setText("2) " + answers[questionNumber-1][1]);
quesAns4.setText("3) " + answers[questionNumber-1][2]);
quesAns4.setText("4) " + answers[questionNumber-1][3]);
于 2012-04-16T13:23:27.563 に答える
0

ユーザーフレンドリーな方法で配列を印刷するには、配列アイテムをループするか、次のArrays.deepToStringメソッドを使用する必要があります。

String yourPrinterFriendlyArray = Arrays.deepToString(answers[0]);
quesAns4.setText("4) " + yourPrinterFriendlyArray); 
于 2012-04-16T13:12:55.913 に答える