- java.lang.NullPointerException - setText on null object reference
2022-09-01 10:36:01
这就是我几个小时试图做的事情:我有一个MainActivity.java文件(下面列出)和一个带有开始按钮的fragment_start.xml文件。点击开始按钮应显示带有点/舍入和倒计时文本视图的activity_main.xml文件。它不起作用,这就是正在发生的事情:
logcat 告诉我: PID: 1240 java.lang.NullPointerException: 尝试在 null 对象引用上调用虚拟方法 'void android.widget.TextView.setText(java.lang.CharSequence)'
模拟器显示:不幸的是,GAME 已停止。
有必要提到我在编程方面相当新吗?
感谢您的任何建议!
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
public class MainActivity extends Activity implements View.OnClickListener {
private int points;
private int round;
private int countdown;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
showStartFragment();
}
private void newGame () {
points=0;
round=1;
initRound();
}
private void initRound() {
countdown = 10;
update();
}
private void update () {
fillTextView(R.id.points, Integer.toString(points));
fillTextView(R.id.round, Integer.toString(round));
fillTextView(R.id.countdown, Integer.toString(countdown * 1000));
}
private void fillTextView (int id, String text) {
TextView tv = (TextView) findViewById(id);
tv.setText(text);
}
private void showStartFragment() {
ViewGroup container = (ViewGroup) findViewById(R.id.container);
container.removeAllViews();
container.addView(
getLayoutInflater().inflate(R.layout.fragment_start, null) );
container.findViewById(R.id.start).setOnClickListener(this);
}
@Override
public void onClick(View view) {
if(view.getId() == R.id.start) {
startGame();
}
}
public void startGame() {
newGame();
}
}