android使用全局变量。求解答啊。来人啊,泪奔了!!!

shuilingyi 2012-05-01 09:22:12
关于android使用全局变量,在网上看到可以写一个类,继承Application解决。下面是我自己写的类:public class IdApp extends Application{
private String ID;
private String name;
public String getID() {
return ID;
}
public String getName() {
return name;
}
public String getTime() {
return time;
}
public void setID(String ID) {
this.ID = ID;
}
public void setName(String name) {
this.name = name;
}

@Override
public void onCreate() {
super.onCreate();
setID("00");
setName("00");



Activity的Oncreate方法中调用如下:
IdApp ia =(IdApp) getApplicationContext();
ia.setName(name);
}

Manifest的application标签中已经添加name=".IdApp"。为什么运行程序的时候总报错,强制类型转换的异常???
...全文
371 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
枕霞旧友 2014-11-12
  • 打赏
  • 举报
回复
引用 13 楼 shuilingyi 的回复:
[Quote=引用 12 楼 danielinbiti 的回复:] <application android:name=".IdApp" [/Quote] 怪了,昨天我写的是android:name=".IdApp",Manifest提醒我写错了,所以我才改成直接写name。看到您的回复以后,我又把android:加上了,这次没错,就好了。不过要把包名也加上。 非常感谢您的回复!!!
俺包名也加上了,全局变量还是无法赋值啊
danielinbiti 2012-05-02
  • 打赏
  • 举报
回复
<application
android:name=".IdApp"
shuilingyi 2012-05-02
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 danielinbiti 的回复:]

<application
android:name=".IdApp"
[/Quote]

怪了,昨天我写的是android:name=".IdApp",Manifest提醒我写错了,所以我才改成直接写name。看到您的回复以后,我又把android:加上了,这次没错,就好了。不过要把包名也加上。
非常感谢您的回复!!!
shuilingyi 2012-05-01
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 的回复:]

你还是把你的Manifest中内容贴出来吧,看是否有手误的地方。
[/Quote]
一下是Manifest:
<?xml version="1.0" encoding="utf-8" ?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="wmj.getInformation" android:versionCode="1" android:versionName="1.0">
<application name=".IdApp" android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".LoginActivity" android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".GneralInfoMain" />
<activity android:name=".MeteorologyInfo" />
<activity android:name=".FarmInfoActivity" />
<activity android:name=".DisasterGeneralInfo" />
<activity android:name=".FertilizeInfo" />
<activity android:name=".IrrigateInfo" />
<activity android:name=".IllGeneralInfo" />
<activity android:name=".IllInfoMain" />
<activity android:name=".IllImageInfo" />
<activity android:name=".IllVideoInfo" />
<activity android:name=".DisasterInfoMain" />
<activity android:name=".DisasterImageInfo" />
<activity android:name=".DisasterVideoInfo" />
<activity android:name=".MainActivity" />
<activity android:name=".FarmInfoMain" />
<activity android:name=".FarmGeneral" />
<activity android:name=".NutrientionInfo" />
<activity android:name=".TraceElementInfo" />
<activity android:name=".LocationInfo" />
</application>
<uses-sdk android:minSdkVersion="8" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
</manifest>

真心没觉得错啊
danielinbiti 2012-05-01
  • 打赏
  • 举报
回复
你还是把你的Manifest中内容贴出来吧,看是否有手误的地方。
shuilingyi 2012-05-01
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

就是一个普通类。。放公共变量用。。。
[/Quote]
谢谢您的回复。普通类肯定没有问题。我在网上发现很多介绍这种继承Application设置应用变量的方法, 大家都使用了ia =(IdApp) getApplicationContext();所以想试试,但是没想到一直出现这个问题。
shuilingyi 2012-05-01
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

用IdApp ia =(IdApp) getApplication();
[/Quote]

您好,谢谢您回复。用了getApplication(),还是有那个错误。飙泪啊。折磨我一晚上了
foo1st 2012-05-01
  • 打赏
  • 举报
回复
就是一个普通类。。放公共变量用。。。
shuilingyi 2012-05-01
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

1.五一放假都在休息
2.IdApp extends Application只为了做一个实体类?晕,不知道楼主这么定义意义何在?
3.getApplicationContext()取的是这个应用程序的Context,你把它强制转化成IdApp当然会出错了,就是这句:IdApp ia =(IdApp) getApplicationContext();
4.你如果这么写: IdApp ia2 ……
[/Quote]

您好!谢谢您的回复。我想使用应用级程序变量,所以继承Application,如果按您所说的写法,就没必要继承Application了,就是个普通的类
fire_fire_fire 2012-05-01
  • 打赏
  • 举报
回复
1.五一放假都在休息
2.IdApp extends Application只为了做一个实体类?晕,不知道楼主这么定义意义何在?
3.getApplicationContext()取的是这个应用程序的Context,你把它强制转化成IdApp当然会出错了,就是这句:IdApp ia =(IdApp) getApplicationContext();
4.你如果这么写: IdApp ia2 =new IdApp();ia2.setName("zhangsan");就不会出错了
danielinbiti 2012-05-01
  • 打赏
  • 举报
回复
用IdApp ia =(IdApp) getApplication();
shuilingyi 2012-05-01
  • 打赏
  • 举报
回复
肿么木有人
shuilingyi 2012-05-01
  • 打赏
  • 举报
回复
自己顶顶………………
shuilingyi 2012-05-01
  • 打赏
  • 举报
回复
来个人啊,亲

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧