Пользователь жмёт клавишу.
После нажатия клавиши я хочу, чтобы создался объект другого класса CoffeeApp и вызвался метод CoffeeApp.run(), который записал бы в TextView строку, хранящуюся в strings.xml
Но при нажатии клавиши вылетает по ошибке java.lang.NullPointerException на строке, которая присваивает введённый текст в TextView.
В чём может быть проблема?
Код: Выделить всё
package com.example.robogiucetest_1;
public class MainActivity extends RoboActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Кнопка, которую будет жать пользователь
Button myButton = (Button)findViewById(R.id.Mybutton);
// Ждём нажатия на кнопку
myButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View w) {
// Создаём второй класс, передавая в него строку
CoffeeApp cApp = new CoffeeApp();
// Выполняем метод, который будет выводить строку
cApp.run();
}
});
}
class CoffeeApp
{
// Сюда хочу вывести строку, лежащую в strings.xml
TextView heatStatus;
String string_heatStatus;
protected void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.activity_main);
// Ссылка на текстовое поле, в кот. надо вывести строковый ресурс
heatStatus = (TextView)findViewById(R.id.coffeeHeatingStatus);
// Получаю строку из strings.xml
string_heatStatus = getString(R.string.heating_coffee_string);
}
// Конструктор
CoffeeApp() {}
// Вызывается по нажатию кнопки через назначенный листенер в onCreate класса MainAcivity
public void run()
{
// Вот здесь возникает ошибка java.lang.NullPointerException
heatStatus.setText(string_heatStatus);
}
}
}