猿问

我可以在其他类中创建一个活动的对象吗?

我可以在其他类中创建一个活动的对象吗?

我已经在mainActivity中定义了一个函数,现在我想用我应用程序中的另一个类访问它。我已经使用我调用的函数创建了一个主体活动的对象。它没有显示任何错误,但它不是每次我尝试执行应用程序崩溃时都会执行。任何解决方案



墨色风雨
浏览 464回答 3
3回答

弑天下

活动A应该有一个变量static ActivityA activityA;在永续状态:activityA = this;并添加此方法:public static ActivityA getInstance(){    return   activityA;  }在活动B中,呼叫ActivityA.getInstance().myFunction(); //call myFunction using activityA

慕的地10843

不能仅通过以下方法创建活动对象:MyActivity activity = new MyActivity();就像您对普通Java类所做的那样。Android中的所有活动都必须经过活动生命周期,以便它们有一个有效的上下文附加到它们。通过将一个活动作为一个普通的Java类来处理,您将得到一个空上下文。由于活动中的大多数方法都是在其上下文中调用的,您将得到一个空指针异常,这就是应用程序崩溃的原因。相反,将需要从其他类调用的所有此类方法移到在构造函数中接受有效上下文的实用程序类中,然后在方法中使用该上下文来完成工作。

MMMHUHU

使变量公开,然后在适配器中创建对象,如下所示:public int i;  // Variable in Activity class((ActivityName) context).i          // accessing in adapter
随时随地看视频慕课网APP

相关分类

Android
我要回答