如何允许访问课程?

时间:2013-02-18 09:01:43

标签: java android singleton global-variables

我知道,这个问题以前曾问过,但我无法超越这个问题。我想定义全局变量,所以我使用了扩展application class。但是我无法达到subclass

我也创建了公共构造函数。

我的superclasssubclass在这里:

class GlobalVariables extends Application {

    private int sessionid;
    private Locale locale;

    public GlobalVariables(){
    }

    public int getSessionid() {
        return sessionid;
    }

    public void setSessionid(int sessionid) {
        this.sessionid = sessionid;
    }

    public Locale getLocale() {
        return locale;
    }

    public void setLocale(Locale locale) {
        this.locale = locale;
    }
}

class Application extends Activity {

    Intent intent;
    int sessionid;
    Log log = new Log();
    SQLiteDatabase db2;
    GeneralLog db = new GeneralLog(this);

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        sessionid = getSessionId()+1;

        GlobalVariables glb = new GlobalVariables();
        glb.setSessionid(sessionid);

        setContentView(R.layout.application);
    }

    public int getSessionId() {
        SQLiteDatabase db2 = db.getReadableDatabase();
        final SQLiteStatement stmt = db2.compileStatement("SELECT MAX(sessionid) FROM LOG2");

        return (int) stmt.simpleQueryForLong();
    }

    public Application() {
    }
}

我收到此错误:

java.lang.IllegalAccessException : access the class not allowed

3 个答案:

答案 0 :(得分:1)

扩展Application的课程必须为public

public class GlobalVariables extends Application 

答案 1 :(得分:1)

在您的课程中添加public可以解决您的问题。

public class GlobalVariables extends Application

答案 2 :(得分:0)

如果未指定类的范围,则默认为private。你必须公开,以便你可以从其他地方访问它。