如何从一个类到另一个类获取全局变量?

时间:2014-02-20 08:16:29

标签: android constructor android-context

您有一个数据库,我创建了一个具有私有静态类的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类中获取该值

请让我知道语法有什么问题。

2 个答案:

答案 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

相关问题