Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在从GLScreen类扩展而来的类中使用活动类方法?_Java_Android - Fatal编程技术网

Java 如何在从GLScreen类扩展而来的类中使用活动类方法?

Java 如何在从GLScreen类扩展而来的类中使用活动类方法?,java,android,Java,Android,我正在从GLScreen类扩展我的类。但是我需要调用活动类方法,比如getString和getPreferences。我如何调用这些方法?因为我只能从一个类进行扩展。必须将活动的引用传递给类才能调用getPreferences()/getString()。您可以通过构造函数/设置器来实现这一点 大概是这样的: public YOURCLASS extends GLScreen { Activity mActivity; public YOURCLASS(Activity

我正在从GLScreen类扩展我的类。但是我需要调用活动类方法,比如getString和getPreferences。我如何调用这些方法?因为我只能从一个类进行扩展。

必须将活动的引用传递给类才能调用getPreferences()/getString()。您可以通过构造函数/设置器来实现这一点

大概是这样的:

public YOURCLASS extends GLScreen {

     Activity mActivity;

     public YOURCLASS(Activity activity){
         mActivity = activity;
     }

     ...

     // call this in a method
     mActivity.getString(...);
}
YOURCLASS foo = new YOURCLASS(this);  
在您的活动中,可以这样称呼它:

public YOURCLASS extends GLScreen {

     Activity mActivity;

     public YOURCLASS(Activity activity){
         mActivity = activity;
     }

     ...

     // call this in a method
     mActivity.getString(...);
}
YOURCLASS foo = new YOURCLASS(this);  

当我这样做时,我会得到一个异常“无法在未调用looper.prepare的线程内创建处理程序”。我尝试了以下方法:它会给出null指针异常。请help@user3634684然后问一个有你所有细节的问题!你想要实现什么以及你已经拥有什么代码。