2014-05-06 50 views
0

我目前正在使用數組和單選按鈕做10個問題的多選題測驗。測驗本身通過使用android studio的genymotion在模擬器上運行,但答案,問題和正確答案字段都顯示爲空白。我使用點擊偵聽器創建了測驗,但似乎沒有點擊過去到下一個屏幕。我試圖改變各種代碼,並且似乎無法找到任何將數組讀入單選按鈕a,b,c和d的內容。誰能解決這個問題?我附上了代碼,我認爲代碼應該正確遞增,但我還需要添加8個問題。與陣列不工作的Android測驗

package com.quiz.newquiz.app; 

import android.app.Activity; 

import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 

public class MainActivity extends Activity { 

    private int currentQuestion; 
    private String [] questions; 
    private String [] answers; 

    private Button answerButton; 
    private Button questionButton; 
    private TextView questionView; 
    private TextView answerView; 
    private EditText answerText; 

    @Override 

     public void onCreate(Bundle savedInstanceState){ 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     initialise(); 
    } 

    public void initialise() 
    { 
     questions = new String[]{"What is the capital of Egypt?","What class are you in?"}; 
     answers = new String[] {"Cairo","Class B"}; 
     answerButton = (Button)findViewById(R.id.AnswerButton); 
     questionButton = (Button)findViewById(R.id.QuestionButton); 
     questionView = (TextView)findViewById(R.id.QuestionTextView); 
     answerView = (TextView)findViewById(R.id.AnswerTextView); 
     answerText = (EditText)findViewById(R.id.AnswerText); 
     answerButton.setOnClickListener(new View.OnClickListener(){ 

      @Override 

     public void onClick(View view){ 
       checkAnswer(); 
      } 
     }); 

     questionButton.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       showQuestion(); 


      } 
     }); 
    } 
    public void showQuestion() 
    { currentQuestion=0; 
      if(currentQuestion<10) 
       currentQuestion++; 
     questionView.setText(questions[currentQuestion]); 
     answerView.setText(""); 
     answerText.setText(""); 
    } 

    public boolean isCorrect(String answer) 
    { 
     return (answer.equalsIgnoreCase(answers[currentQuestion])); 
    } 
    public void checkAnswer() 
    { 
     String answer = answerText.getText().toString(); 
     if(isCorrect(answer)) 
      answerView.setText("You are correct!"); 
     else 
      answerView.setText("Sorry, the correct answer is " + answers[currentQuestion]); 


    } 
} 
+0

是否需要像這樣寫字符串? private String [] answerA = new String [10];而不是私人String [] = answerA – user3605770

回答

1

見這一行代碼:

public void showQuestion() 
{ currentQuestion=0; 
     if(currentQuestion<10) 
      currentQuestion++; 
    questionView.setText(questions[currentQuestion]); 
    answerView.setText(""); 
    answerText.setText(""); 
} 

你currentQuestion變量總是被分配值0和檢查。在點擊監聽器中增加當前問題。

questionButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
     currentQuestion++;    
     showQuestion(); 

     } 
    }); 
+0

增加它在這一個? questionView.setOnClickListener(新OnClickListener(){ @Override 公共無效的onClick(查看視圖){ RadioGroup中GRP =(RadioGroup中)findViewById(R.id.radioGroup1); 單選按鈕ID =(單選按鈕)findViewById(grp.getCheckedRadioButtonId( )); showQuestion(); – user3605770

+0

或這一個answerButton.setOnClickListener(新View.OnClickListener() { @Override 公共無效的onClick(查看視圖){ currentQuestion ++;? checkAnswer(); } }); – user3605770

+0

如果我在設置文本後添加},下面的所有內容都會變成紅色,就像錯誤一樣。有什麼辦法可以防止這種情況發生? – user3605770