2013-02-18 53 views
1

我知道,这个问题以前问过,但我无法超过这个问题。我想定义全局变量,所以我使用扩展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 
+0

你能提供完整的堆栈跟踪吗? – Shade 2013-02-18 09:03:51

+0

你在哪一行得到这个异常?子例外通常在使用反射时发生,但代码示例中没有反射。 – 2013-02-18 09:04:04

+0

@Shade,我补充道。 – 2013-02-18 09:05:50

回答

1

延长Application有类是public

​​
+0

当我尝试它时,出现此错误:公共类型GlobalVariables必须在其自己的文件中定义 – 2013-02-18 09:09:55

+0

为什么不能在另一个文件中定义GlobalVariables类? – Blackbelt 2013-02-18 09:11:04

+0

我试过了,我得到了类抛出异常。 – 2013-02-18 09:13:36

1

添加public到您的类会解决你的问题。

public class GlobalVariables extends Application 
+0

当我尝试它时,我得到这个错误:公众类型GlobalVariables必须在它自己的文件中定义 – 2013-02-18 09:10:17

0

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