Java 从活动外部的类启动意图

Java 从活动外部的类启动意图,java,android,oop,android-intent,Java,Android,Oop,Android Intent,我有两个活动,其中一个叫做MyActivity。我希望他们都能够使用位于类中的函数,我们可以调用MyClass。在MyClass中,我尝试使用意图来启动活动AnotherActivity。由于构造函数将上下文作为参数,所以我只是尝试将活动中的上下文存储在构造函数中,然后在尝试创建意图时使用它 class MyClass { private Context cxt; MyClass(Context cxt) { this.cxt = cxt; } startIntent

我有两个活动,其中一个叫做
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();
然而,即使所有参数都不为null(通过简单的if语句检查),
intent
似乎为null,并抛出
NullPointerException
。为什么它不起作用,我能做些什么来解决这个问题? 我对Android和Java开发非常陌生,所以请尽可能简单地解释一下

cxt.startActivity(new Intent(cxt, AnotherActivity.class));
为了确保它的意图是空的,而不是startActivity方法中的内部内容,您可以添加一些检查,例如

Intent intent = new Intent(cxt, AnotherActivity.class);
Log.d(toString(), "intent = " + intent.toString());
cxt.startActivity(intent);

我在我的应用程序中使用了几乎相同的代码,它运行得很好


我怀疑在代码中还有其他东西在进行,你没有向我们展示;我怀疑存在一些剪切和粘贴问题,例如,在MyClass中,您将startActivity()称为什么?

很好,现在它可以正常工作了!我不明白为什么在调用startActivity Think之前,意图应该是空的,而且当我运行我的程序时,它似乎不是空的。