2014-01-31 59 views
-1

我正在製作一個類似標誌測驗的遊戲,但在他正確回答後我無法讓玩家獲得分數。如何在遊戲中顯示分數?

這裏是我有什麼,直到知道:

public class Capitolio extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_guess1); 
     init(); 

     ActionBar actionBar = getActionBar(); 
     actionBar.setDisplayHomeAsUpEnabled(true); 
    } 

    public boolean onOptionsItemSelected(MenuItem item){ 
     Intent myIntent = new Intent(getApplicationContext(), Level1.class); 
     startActivityForResult(myIntent, 0); 
     return true; 

    } 


    private Button buttonSaveMem1; 
    private EditText escrive; 
    private TextView respuest, otra; 
    private String [] answers; 
    int Score = 0; 

    private int currentQuestion; 



    public void init() { 

     answers = new String[]{"nnnnn"};  
     buttonSaveMem1 = (Button)findViewById(R.id.button1);  
     respuest = (TextView) findViewById(R.id.textView2); 
     otra = (TextView) findViewById(R.id.textView1); 
     escrive = (EditText) findViewById(R.id.editText1); 
     buttonSaveMem1.setOnClickListener(buttonSaveMem1OnClickListener); 

     LoadPreferences(); 
    } 

    Button.OnClickListener buttonSaveMem1OnClickListener = new Button.OnClickListener() { 

     @Override  
     public void onClick(View arg0) {  
      checkAnswer(); 
      // TODO Auto-generated method stub 
      SavePreferences("MEM1", respuest.getText().toString()); 
      LoadPreferences(); 
     } 
    }; 

    public boolean isCorrect(String answer) {  
     return (answer.equalsIgnoreCase(answers[currentQuestion])); 
    } 

    /* this method :  
    * 1: Read the text (answer) from the answerTextEdit 
    * 2: call the isCorrect method  
    * 3: display the appropriate message.  
    */ 

    public void checkAnswer() {  
     String answer = escrive.getText().toString(); 
     if(isCorrect(answer))  
      respuest.setText("You're right!" + "The Answer is The Vatican"); 
     else  
      respuest.setText("Sorry, The answer is not right!"); 
    } 

    public void showscore() {  
     String answer = escrive.getText().toString(); 
     if(isCorrect(answer))  
      Score += 1; 

     otra.setText(Score); 
    } 

    private void SavePreferences(String key, String value) { 
     SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE); 
     SharedPreferences.Editor editor = sharedPreferences.edit(); 
     editor.putString(key, value); 
     editor.commit(); 
    } 

    private void LoadPreferences() { 
     SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE); 
     String strSavedMem1 = sharedPreferences.getString("MEM1", ""); 

     respuest.setText(strSavedMem1); 

    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.main, menu); 
     return true; 
    } 

} 

並在此之後我想開發一種方法來解開這個分數其它的水平,但我沒有對如何做到這一點的認識。

感謝您的幫助。

回答

0

您可以嘗試這樣的事:

public void checkAnswer() {  
    String answer = escrive.getText().toString(); 
    if(isCorrect(answer)) { 
     respuest.setText("You're right!" + "The Answer is The Vatican"); 
     Score += 1; 
    } 
    else { 
     respuest.setText("Sorry, The answer is not right!"); 
    } 

    showScore(); 
} 

public void showScore() {  
    otra.setText(Score); 
} 
+0

我想這一點,但由於某些原因,當我點擊它停止aplication答案按鈕。任何想法爲什麼發生這種情況? – user3186708

+0

好的,你原來的問題是關於顯示分數(「如何在遊戲中顯示分數?」)。看起來你還有其他問題。他們可能應該根據不同的問題。 – jww

+0

好的,但你知道爲什麼應用程序點擊答案按鈕後停止? (我推出了你給我的代碼) – user3186708