从活动之外的课程中启动意图

我有两个活动,其中一个叫做MyActivity 。 我希望他们俩能够使用位于我们可能称之为MyClass的类中的函数。 在MyClass ,我尝试使用intent来启动活动AnotherActivity 。 由于构造函数将上下文作为参数,我只是尝试在构造函数中存储活动的上下文,然后在我尝试创建我的intent时使用它。

 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)); 

并且为了确保它的意图是NULL,而不是startActivity方法内部的东西,你可以添加一些检查,即

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

我在我的应用程序中使用了几乎相同的代码并且工作正常。

我怀疑在你没有向我们展示的代码中还有其他的东西; 我怀疑有一些剪切和粘贴问题 – 例如你在MyClass中调用startActivity()是什么?