2012-04-16 84 views
0

我一直在嘗試這個測驗一段時間,但是我很努力地將問題與答案匹配。顯示數組的值

以下行和其他應該顯示答案的行實際顯示「[[ljava.lang.string; @ 40585b18」和輕微變化。

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

我曾試圖改變現在上面的一行:

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

很明顯,我想問題的答案和方法符合上述僅從陣列

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

所以顯示8基本上是對我想要他們匹配的每個問題的改變。如果問題是「在幾秒鐘內,以300公里/小時的速度行駛F1車輛需要多長時間?」可能顯示的答案應該是4,6,8,10等。

任何幫助/指導,將不勝感激謝謝。

Full code below!

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); 
      } 

     } 

    }); 
} 



} 

回答

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]); 
+0

我解決了這個問題。我剛剛使用rnd2 int --- change_question(rnd2)---- --- quesAns4.setText(「4)」+ answers [rnd2] [3]); ---- 謝謝 – ManWithNoName 2012-04-16 14:10:05

0

要在用戶友好的方式打印數組,你需要遍歷數組的項目,或者您可以使用Arrays.deepToString method

String yourPrinterFriendlyArray = Arrays.deepToString(answers[0]); 
quesAns4.setText("4) " + yourPrinterFriendlyArray);