java - 当我从 Main2Activity.java 转到 Main3Activity.java 时,我不断收到错误消息:“testapp 已停止”
问题描述
我对编码很陌生,在调试过程中我也不是很了解。
至于现在,这就是我能提供的所有信息,我希望有人遇到过这类问题并有解决方案。
Main2Activity的代码:
MediaPlayer bmusic;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
bmusic = MediaPlayer.create(Main2Activity.this,R.raw.bmapp);
bmusic.setLooping(true);
bmusic.start();
button = findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Main2Activity.this, Main3Activity.class);
startActivity(intent);
}
});
}
@Override
protected void onPause() {
super.onPause();
bmusic.release();
finish();
}
Main2Activity 非常好,但是一旦我单击将我引导到 Main3Activity 的开始游戏按钮,就会弹出一个错误,说“testapp(我的应用程序名称)已停止。
Main3Acitivty的代码:
Button b_continue;
TextView tv_question;
EditText et_answer1;
List<Item> questions;
int curQuestion = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main3);
b_continue = findViewById(R.id.b_continue);
tv_question = findViewById(R.id.tv_question);
et_answer1 = findViewById(R.id.et_answer1);
b_continue.setVisibility(View.INVISIBLE);
questions = new ArrayList<>();
//add all questions and answers to the game
for (int i = 0; 1 < Database.questions.length; i++){
questions.add(new Item(Database.questions[i], Database.answers[i]));
}
//shuffle the questions
Collections.shuffle(questions);
tv_question.setText(questions.get(curQuestion).getQuestion());
et_answer1.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
//check if the answer is right
if(et_answer1.getText().toString().equalsIgnoreCase(questions.get(curQuestion).getAnswer())){
b_continue.setVisibility(View.VISIBLE);
} else {
b_continue.setVisibility(View.INVISIBLE);
}
}
@Override
public void afterTextChanged(Editable s) {
}
});
b_continue.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (curQuestion < (Database.questions.length - 1)) {
//next question
curQuestion++;
tv_question.setText(questions.get(curQuestion).getQuestion());
b_continue.setVisibility(View.INVISIBLE);
et_answer1.setText("");
} else {
//no more questions - game over
Toast.makeText(Main3Activity.this, "You won the game!", Toast.LENGTH_SHORT).show();
finish();
}
}
});
}
解决方案
声明活动AndroidManifest.xml
像那样
<activity android:name=".Main3Activity" />
注意:如果是隐式错误。
推荐阅读
- c++ - 如何在函数中使用二维数组?
- java - 如何获取 EditText 以检查它是否等于 Integer ArrayList 中的任何数字?
- unity3d - Unity - 转向冲刺
- database - 由于驱动程序无法连接到数据库
- python - 如何使用值对数据框进行排序
- python - 对象的描述符不适用于对象,使用 __slots__
- c++ - GitLab CI:如何构建然后缓存依赖项,然后在它们发生变化时再次构建它们?
- java - JavaFX - JDK 13 的 JFoenix 替代品
- special-characters - 检测 AutoHotkey 中的特殊字符按键
- django - Django+React 休息认证