所以我创建了一个 DrawView 类,它扩展了 View,我想在该类中绘制一些图形,并将我存储为 int 数组的点 在 How to declare global variables 的帮助下,我把这个数组变成了一种公共(public)变量 因此,当我想在 Activity 中连接 MyApp 并更改我的数组时,我只需使用
MyApp appState = ((MyApp)getApplicationContext());
但问题是,当我在我的 DrawView.java 类中调用它时,这将不起作用。 任何ides如何解决这个问题?
最佳答案
我真的不知道为什么这个答案如此受欢迎,因为它不是一个好的解决方案。 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[] ... 放置您希望全局可访问的任何其他对象。但请记住,不要保留对上下文的引用!
关于Android:getApplicationContext() 在 View 子类中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13824293/