我通常如何访问我的应用程序:
MyApplication myApp = (MyApplication)this.getApplication();
但这不能从
里面完成
。public class MyArrayAdapter extends ArrayAdapter<SomeObject> {}
因为getApplication()是一个Activity方法。有没有一种方法可以从ArrayAdapter访问Application?
我通常如何访问我的应用程序:
MyApplication myApp = (MyApplication)this.getApplication();
里面完成
。public class MyArrayAdapter extends ArrayAdapter<SomeObject> {}
private MyApplication myApp;
public void MyArrayAdapter(MyApplication app){
myApp = app;
//do other setup stuff here
}
MyArrayAdapter myAdapter = new MyArrayAdapter(this.getApplication());
一般来说,你的应用程序应该是程序中的单例。因此,最简单的方法是创建一个应用程序对象的静态引用。
class MyApp extends Application {
static MyApp myAppInstance;
public MyApp() {
myAppInstance = this;
}
public static MyApp getInstance() {
return myAppInstance;
}
}
然后在您的适配器中,您只需调用MyApp.getInstance()
MyApplication myApp = (MyApplication)context.getApplication();