我在尝试将上下文从 MainActivity 类传递到另一个类时遇到问题。这是 ContextPasser 类。
public class ContextPasser extends Application{
public Context context;
public ContextPasser(){
context = getApplicationContext();
}}
但是如果我在另一个类中使用上下文变量,如下所示:
Line line = new Line(new ContextPasser().context);
我遇到空指针异常。我想要一个不涉及传递上下文变量的解决方案,因为我已经查看了所有其他 stackoverflows,它们似乎并没有帮助我。我发现的解决方案之一是:
Context context;
MyHelperClass(Context context){
this.context=context;
}
这对我没有帮助,因为我正在调用 Line 类,
Line line = new Line(new ContextPasser().context);
在另一个名为 GameRunner 的类中,如下所示:
public class GameRunner extends Activity {
Line line = new Line(new ContextPasser().context);
public void draw(Canvas canvas){
line.draw(canvas);
getWindow().getDecorView().setBackgroundColor(Color.BLACK);
}
public void update(){
line.update();
}
}
因此,我想创建一个方法来传递 Context,而不接受 Context 类本身的参数。
请告诉我任何建议或答案。 我真的很感激。 非常感谢您的时间和考虑!
最佳答案
如果您的其他类是非 Activity 类,这就是您传递Context
的方式:
public class MyNonActivityClass{
// variable to hold context
private Context context;
//save the context received via constructor in a local variable
public MyNonActivityClass(Context context){
this.context=context;
}
}
这就是传递上下文的方式:
MyNonActivityClass mClass = new MyNonActivityClass(this);
关于java - 如何将上下文从 MainActivity 传递到 Android 中的另一个类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42036278/