我知道,这个问题以前曾问过,但我无法超越这个问题。我想定义全局变量,所以我使用了扩展application class
。但是我无法达到subclass
。
我也创建了公共构造函数。
我的superclass
和subclass
在这里:
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
答案 0 :(得分:1)
扩展Application
的课程必须为public
public class GlobalVariables extends Application
答案 1 :(得分:1)
在您的课程中添加public
可以解决您的问题。
public class GlobalVariables extends Application
答案 2 :(得分:0)
如果未指定类的范围,则默认为private。你必须公开,以便你可以从其他地方访问它。