2017-08-09 25 views
-5

我正在嘗試製作一個簡單的測驗應用程序,並且我想在另一個活動(另一個屏幕)中顯示分數值,即當我按下提交按鈕時,分數活動應該打開並顯示總分。從Mainactivity發送一個值並在另一個活動中顯示該值

我嘗試過使用意圖,但它沒有奏效。我是android編程新手,可能會出現一些愚蠢的錯誤。

這是MainActivity.java文件。

package com.example.android.conanquiz; 

import android.content.Intent; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.view.View; 
import android.widget.RadioButton; 
import android.widget.TextView; 

public class MainActivity extends AppCompatActivity { 
    int score = 0; 

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

    //Question 1 Methods 
    public void question1_click(View view) { 
     boolean checked = ((RadioButton) view).isChecked(); 

     // Check which radio button was clicked 
     switch (view.getId()) { 
      case R.id.haibara: 
       if (checked) { 
        String correct = "Right Answer"; 
        display_answer1(correct); 
        score++; 
       } 
       break; 
      default: { 
       String wrong = "Wrong Answer" + "\n" + "The right answer is " + getString(R.string.q1_o1); 
       display_answer1(wrong); 
      } 
      break; 
     } 

    } 

    private void display_answer1(String answer) { 
     TextView quantityTextView = (TextView) findViewById(R.id.answer_1); 
     quantityTextView.setText(answer); 
    } 

    //Question 2 Methods 
    public void question2_click(View view) { 
     boolean checked = ((RadioButton) view).isChecked(); 

     // Check which radio button was clicked 
     switch (view.getId()) { 
      case R.id.true_op: 
       if (checked) { 
        String correct = "Right Answer"; 
        display_answer2(correct); 
        score++; 
       } 
       break; 
      default: { 
       String wrong = "Wrong Answer" + "\n" + "The right answer is " + getString(R.string.q2_o1); 
       display_answer2(wrong); 
      } 
      break; 
     } 

    } 

    private void display_answer2(String answer) { 
     TextView quantityTextView = (TextView) findViewById(R.id.answer_2); 
     quantityTextView.setText(answer); 
    } 


    //Question 3 Methods 
    public void question3_click(View view) { 
     boolean checked = ((RadioButton) view).isChecked(); 

     // Check which radio button was clicked 
     switch (view.getId()) { 
      case R.id.q3_op3: 
       if (checked) { 
        String correct = "Right Answer"; 
        display_answer3(correct); 
        score++; 
       } 
       break; 
      default: { 
       String wrong = "Wrong Answer" + "\n" + "The right answer is " + getString(R.string.q3_o3); 
       display_answer3(wrong); 
      } 
      break; 
     } 

    } 

    private void display_answer3(String answer) { 
     TextView quantityTextView = (TextView) findViewById(R.id.answer_3); 
     quantityTextView.setText(answer); 
    } 


    //Question 4 Methods 
    public void question4_click(View view) { 
     boolean checked = ((RadioButton) view).isChecked(); 

     // Check which radio button was clicked 
     switch (view.getId()) { 
      case R.id.q4_op1: 
       if (checked) { 
        String correct = "Right Answer"; 
        display_answer4(correct); 
        score++; 
       } 
       break; 
      default: { 
       String wrong = "Wrong Answer" + "\n" + "The right answer is " + getString(R.string.q4_o1); 
       display_answer4(wrong); 
      } 
      break; 
     } 

    } 

    private void display_answer4(String answer) { 
     TextView quantityTextView = (TextView) findViewById(R.id.answer_4); 
     quantityTextView.setText(answer); 
    } 

    //Question 5 Methods 

    public void question5_click(View view) { 
     boolean checked = ((RadioButton) view).isChecked(); 

     // Check which radio button was clicked 
     switch (view.getId()) { 
      case R.id.q5_op3: 
       if (checked) { 
        String correct = "Right Answer"; 
        display_answer5(correct); 
        score++; 
       } 
       break; 
      default: { 
       String wrong = "Wrong Answer" + "\n" + "The right answer is " + getString(R.string.q5_o3); 
       display_answer5(wrong); 
      } 
      break; 
     } 

    } 

    private void display_answer5(String answer) { 
     TextView quantityTextView = (TextView) findViewById(R.id.answer_5); 
     quantityTextView.setText(answer); 
    } 



    //Submit Button 
    public void onClickSubmit(View view){ 
     Intent scoreActivity = new Intent(MainActivity.this,Score.class); 
     scoreActivity.putExtra("sendScore", score); 
     startActivity(scoreActivity); 


    } 



} 

這是其他活動的Java(Score.java)文件

package com.example.android.conanquiz; 

import android.content.Intent; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.widget.TextView; 

public class Score extends AppCompatActivity { 

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

     Intent scoreActivity = getIntent(); 
     int totalScore = scoreActivity.getIntExtra("sendScore", 0); 
     displayScore(totalScore); 

    } 


    public void displayScore(int score) { 
     TextView scoreTextView = (TextView) findViewById(R.id.score); 
     scoreTextView.setText(score); 
    } 

} 
+0

您是否嘗試過打印你的分數,你創建的點擊提交的意圖,看看有什麼價值了。 –

+0

你應該檢查'getIntent'的條件是否爲null,在你的情況下你必須檢查if(scoreActivity!= null){int totalScore = scoreActivity.getIntExtra(「sendScore」,0); displayScore(totalScore);}' –

回答

0

嘗試使用登錄按鈕,點擊打印score。如果得分不爲空,則寫下面的代碼。

從活動

Intent intent = new Intent(getBaseContext(), Score.class); 
intent.putExtra("EXTRA_SCORE", score); 
startActivity(intent); 

到活動

Intent intent = getIntent(); 
int intValue = intent.getIntExtra("EXTRA_SCORE", 0); 
相關問題