【发布时间】:2017-03-22 08:27:56
【问题描述】:
我正在开发一个儿童学习发展应用程序,我想在屏幕顶部显示一个分数,以显示他们到目前为止答对了多少问题。我有一个 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();
}
}
});
}
}
【问题讨论】:
-
请发布崩溃的堆栈跟踪。
-
设置 scoretext "counter++; scoreText.setText(Integer.toString(counter));"意图之前
-
您的
scoreText在您的button_a活动中是null。在开始新活动之前,也可以调用此counter++; scoreText.setText(Integer.toString(counter));。 -
让它停止崩溃,不得不改变 scoreText.setText(Integer.toString(counter)); to score.setText(Integer.toString(counter));
-
在下面查看我的答案
标签: android android-intent counter