У меня есть два вида деятельности, один из которых называется MyActivity
. Я хочу, чтобы оба они могли использовать функцию, расположенную в классе, который мы можем назвать MyClass
. В MyClass
, я пытаюсь использовать намерение начать деятельность AnotherActivity
. Поскольку конструктор принимает контекст как параметр, я просто пытался сохранить контекст из действия в конструкторе, а затем использовать его, когда пытаюсь создать свое намерение.Запуск намерений из класса за пределами деятельности
class MyClass {
private Context cxt;
MyClass(Context cxt) {
this.cxt = cxt;
}
startIntent() {
Intent intent = new Intent(cxt, AnotherActivity.class);
startActivity(intent); // this line throws a NullPointerException
}
}
Код в MyActivity
использовать класс приведен ниже:
myClassObject = new MyClass(MyActivity.this);
myClassObject.startIntent();
Однако даже мысли ни один из аргументов не равны нулю (проверено, что с простым, если-заявление), intent
кажется, be null и вызывается NullPointerException
. Почему это не работает, и что я могу сделать для решения проблемы? Я довольно новичок в разработке Android и Java, поэтому, пожалуйста, объясните это как можно более основательно.
Ницца, теперь он работает так, как ожидалось! Я не понимаю, почему намерение должно быть пустым до вызова startActivity, и кажется, что это не когда я запускаю свою программу. – nip3o