您有一个数据库,我创建了一个具有私有静态类的Database类,DbHelper扩展了SQLiteOpenHelper以帮助我管理我的数据库。
此数据库可以从四种不同的活动中访问。
现在我需要的是什么?我有一个像这样的GlobalClass:
public class Question extends Application{
private String check;
public String getCheck() {
return check;
}
public void setCheck(String check) {
this.check = check;
}
}
在FirstScreen活动中,我有String check
的值。如果我进入其他活动类它没问题。
如果我进入DBHelper
我不能。我试过这样的:
final Question quiz = (Question) getApplicationContext();
final String check = quiz.getCheck();
它显示getApplicationContext()
中的错误。如何在DBHelper类中获取该值
请让我知道语法有什么问题。
答案 0 :(得分:2)
在DBHelper中,除非你没有传递,否则你将没有ApplicationContext。
而不是这样做一件事在Application类中创建一个静态String并使用它。 因为Application类是一个单一的实例,它在内存中保留到最后,所以它不会占用太多内存。
public class Question extends Application{
public static String check = "";
}
检索值
public class DBHelper {
public method() {
String check = Question.check;
}
}
答案 1 :(得分:0)
您的Context
课程中没有DBHelper
。
您需要在实例化Context
课程时传递DBHelper
(首选但不总是实用)或通过执行某项操作从Context
获取Question
如下。
((Question)Question.getAppContext())
然后通过Context
中的getAppContext()
方法返回Question
。