1

我知道,这个问题以前问过,但我无法解决这个问题。我想定义全局变量,所以我使用了 extend 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
4

3 回答 3

1

添加public到您的班级将解决您的问题。

public class GlobalVariables extends Application
于 2013-02-18T09:05:58.767 回答
1

扩展类Application必须是public

public class GlobalVariables extends Application 
于 2013-02-18T09:04:02.847 回答
0

如果不指定类的范围,则默认为私有。您必须公开您的信息,以便您可以从其他地方访问它。

于 2013-02-18T09:35:32.873 回答