我一直在做这个测验一段时间,但是我很难将问题与答案相匹配。
以下一行和应该显示答案的其他行实际上显示“[[ljava.lang.string; @ 40585b18”并略有变化。
quesAns4.setText("4) " + answers[3]) ;
我尝试将上面的行更改为:
quesAns4.setText("4) " + answers[0][3]);
显然我希望答案与问题相符,上面的方法只显示数组中的8
{"3","5","8","9"}
所以基本上是的,我希望他们匹配的每个问题的变化。如果问题是“在几秒钟内,一辆F1赛车以300公里/小时的速度行驶需要多长时间?”可能显示的答案应为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);
}
}
});
}
}
答案 0 :(得分:0)
要以用户友好的方式打印数组,您需要遍历数组项,或者可以使用Arrays.deepToString
method:
String yourPrinterFriendlyArray = Arrays.deepToString(answers[0]);
quesAns4.setText("4) " + yourPrinterFriendlyArray);
答案 1 :(得分: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]);