我知道,这个问题以前问过,但我无法超越这个问题。我想定义全局变量,所以我使用了扩展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
扩展Application
的类必须是public
public class GlobalVariables extends Application
将public
添加到类中可以解决您的问题。
public class GlobalVariables extends Application
如果没有指定类的作用域,则默认情况下它是私有的。你必须公开你的信息,这样你才能从其他地方访问它。