所以我创建了一个扩展 View 的类 DrawView 并且我想在该类中绘制一些图形,并将我存储为 int 数组的点在如何声明全局变量的帮助下使这个数组成为一种公共变量 所以当我想在 Activity 中与 MyApp 连接并更改我的数组,我只需使用
MyApp appState = ((MyApp)getApplicationContext());
但问题是,当我在DrawView.java类中调用它时,这将不起作用。任何想法如何解决这个问题?
所以我创建了一个扩展 View 的类 DrawView 并且我想在该类中绘制一些图形,并将我存储为 int 数组的点在如何声明全局变量的帮助下使这个数组成为一种公共变量 所以当我想在 Activity 中与 MyApp 连接并更改我的数组,我只需使用
MyApp appState = ((MyApp)getApplicationContext());
但问题是,当我在DrawView.java类中调用它时,这将不起作用。任何想法如何解决这个问题?
我真的不知道为什么这个答案如此受欢迎,因为它不是一个好的解决方案。Application 对象是运行应用程序,而不是存储数据,你可以用一个简单的 Singleton 对象更容易地解决这个问题,试试这个:
public Class MyData{
private int[] data;
private static MyData me;
public int[] getData(){
return data;
}
private MyData(){} // private constructor
public MyData get() {}
if(me==null) me = new MyData();
return me;
}
}
比您可以调用的任何对象:
int[] data = MyData.get().getData()
并随意扩展到不仅仅是 int[] ...放置您希望全局访问的任何其他对象。但请记住,不要保留对上下文的引用!