2017-03-22 84 views
0

我正在開發一個孩子學習開發應用程序,我想在屏幕上方有一個分數,以顯示他們到目前爲止有多少問題。我有一個if語句,說明他們是否用正確的字母拼寫答案,然後移動到下一個活動,但是當他們移動時,我希望他們的分數更新。想通過計數器通過第二項活動的意圖,但當我點擊提交按鈕應用程序崩潰。 這裏是一流的傳遞一個計數器通過意圖到一個新的活動

package com.helloworld.erica.alphaanimals; 

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.ImageView; 
import android.widget.TextView; 
import android.widget.Toast; 

import static com.helloworld.erica.alphaanimals.R.id.imageView; 
public class button_a extends Activity { 

private Button button_b; 
TextView scoreText; 
int counter = 0; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.button_a); 

    //final TextView score = (TextView) findViewById(R.id.score); 

    final ImageView ImageView = (ImageView) findViewById(imageView); 
    Button submit = (Button) findViewById(R.id.submit); 

    submit.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View view) { 
      EditText answerA = (EditText) findViewById(R.id.answerA); 
      String toCompare = answerA.getText().toString(); 
      TextView score = (TextView)findViewById(R.id.score); 


      if(toCompare.startsWith("A")) { 
       Intent intent_b = new Intent(button_a.this, button_b.class); 
       intent_b.putExtra("username", score.getText().toString()); 
       startActivity(intent_b); 
       counter++; 
       scoreText.setText(Integer.toString(counter)); 

       Toast.makeText(button_a.this, "Well Done, correct answer!!", Toast.LENGTH_SHORT).show(); 

      }else{ 
       Toast.makeText(button_a.this, "Incorrect", Toast.LENGTH_SHORT).show(); 

      } 
     } 
    }); 

} 

} 這裏設立之前的第二

package com.helloworld.erica.alphaanimals; 

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.ImageView; 
import android.widget.TextView; 
import android.widget.Toast; 


public class button_b extends Activity { 
private Button button_c; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.button_b); 
    final ImageView ImageView = (ImageView) findViewById(imageView); 
    Button submit = (Button) findViewById(R.id.submit); 
    TextView scoreText = (TextView) findViewById(R.id.scoreText); 
    scoreText.setText(getIntent().getExtras().getString("username")); 

    submit.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View view) { 
      EditText answerB = (EditText) findViewById(R.id.answerB); 
      String toCompare = answerB.getText().toString(); 

      if(toCompare.startsWith("B")) { 
       Intent intent_c = new Intent(button_b.this, button_c.class); 
       startActivity(intent_c); 
       //ImageView.setImageResource(R.drawable.bear); 
       Toast.makeText(button_b.this, "Well Done, correct answer!!", Toast.LENGTH_SHORT).show(); 

      }else{ 
       Toast.makeText(button_b.this, "Incorrect", Toast.LENGTH_SHORT).show(); 

      } 
     } 
    }); 

} 

}

+0

請發佈crashtraptrace。 –

+0

set scoretext「counter ++; scoreText.setText(Integer.toString(counter));」在意圖之前 –

+0

您的'scoreText'在'button_a'活動中爲'null'。還要調用這個'counter ++; scoreText.setText(Integer.toString(counter));'在開始新的活動之前。 – Piyush

回答

0

你得到的文本,以改變下面進行:

  counter++; 
      scoreText.setText(Integer.toString(counter)); 
intent_b.putExtra("username", score.getText().toString()); 
      startActivity(intent_b); 
0

你應該檢查Android Studio中Android Monitor的錯誤顯示錯誤,你可以在這裏粘貼。這將有助於解決您的問題。

0
if(toCompare.startsWith("A")) { 

        counter++; 
        score.setText(Integer.toString(counter)); 

        Toast.makeText(button_a.this, "Well Done, correct answer!!", Toast.LENGTH_SHORT).show(); 

        Intent intent_b = new Intent(button_a.this, button_b.class); 
        intent_b.putExtra("username", score.getText().toString()); 
        startActivity(intent_b); 

       }else{ 
        Toast.makeText(button_a.this, "Incorrect", Toast.LENGTH_SHORT).show(); 

       } 

希望這有助於你

0

有一個在第一個活動沒有scoreText。您的TextView名稱是分數,因此請更改它,並且語句的順序也不正確。 Intent應該在counter ++之後並在TextView中設置文本。

相關問題