android全局变量,带有ClassCastException的getApplicationContext

时间:2011-06-15 16:34:33

标签: android variables global classcastexception

按照Stack Overflow问题和答案的建议,我创建一个类(Constant),并尝试声明并将其用作全局变量,但是它无法投射,找不到任何关于这个问题的好答案,我试图在Manifest文件中定义“Constant”或“.Constant”,这些定义都不起作用。

请帮帮我。

Constant con = ((Constant)getApplicationContext());  // failed to cast here
con.setClientid(Integer.parseInt(clientid));

import android.app.Application;

public class Constant extends Application {
    private int gClientid;
    public int getClientid() { return gClientid; }   
    public void setClientid(int cid) { gClientid = cid; }   
}

清单

<application android:name=".Constant" android:icon="@drawable/icon">

4 个答案:

答案 0 :(得分:1)

Constant con = (Constant)getApplication();  // failed to cast here
con.setClientid(Integer.parseInt(clientid));

import android.app.Application;

public class Constant extends Application {
    private int gClientid;
    public int getClientid() { return gClientid; }   
    public void setClientid(int cid) { gClientid = cid; }   
}

答案 1 :(得分:1)

正确的synthax应该是Constant con =(Constant)this.getApplication();在你的活动中。

答案 2 :(得分:0)

将getApplicationContext()替换为getApplication(),您应该能够转换类扩展应用程序。

答案 3 :(得分:0)

我知道我正在回答一个老帖子, 但只是为了那些仍然遇到类似问题的人。

我认为他的问题是

的一部分
<application android:name=".Constant" android:icon="@drawable/icon">

通过包含类的整个特定路径而不是“.Constant”来解决我的问题。 恩。 “com.example.Constant”