Это то, что я пытаюсь сделать в течение нескольких часов: У меня есть файл MainActivity.java(список ниже) и файл fragment_start.xml с кнопкой запуска. Нажатие кнопки "Пуск" должно отображать файл activity_main.xml с точками -/round - и обратный отсчет - Textviews. Это не работает, и это то, что происходит:
Логарифм говорит мне: PID: 1240 java.lang.NullPointerException: попытка вызвать виртуальный метод '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();
}
}