android 全局变量使用问题

archy123 2013-03-14 04:56:25
全局定义变量在登录页设置值后,在登录后跳转到的页面上获取不到值,一直为空。

全局变量的定义

public class MyApplication extends Application {

private Map map;
private Connection.Response response;

public Map getMap() {
return map;
}

public void setMap(Map map) {
this.map = map;
}

public Connection.Response getResponse() {
return response;
}

public void setResponse(Connection.Response response) {
this.response = response;
}

}



AndroidManifest.xml 配置文件

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.test.login"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="9" android:targetSdkVersion="10"/>
<uses-permission android:name="android.permission.INTERNET"/>
<application android:label="@string/app_name"
android:name="com.test.common.MyApplication"
android:icon="@drawable/logo">
<activity android:name="MainActivity"
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="com.test.index.IndexActivity">
<intent-filter>


</intent-filter>
</activity>
<activity android:name="com.test.show.ShowActivity">
<intent-filter>


</intent-filter>
</activity>
</application>
</manifest>



从MainActivity跳转到IndexActivity


public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
.....
.....
MyApplication myApplication = new MyApplication();
myApplication.setResponse(response);
myApplication.setMap(response.cookies());
......
Intent intent = new Intent();
intent.setClass(MainActivity.this, IndexActivity.class);
startActivity(intent);
}




获取全局变量

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_index);

MyApplication myApplication = (MyApplication) getApplication();
System.out.println( myApplication.getResponse());
}

结果怎么都取不到。。
很是郁闷,高手请指点下,迷茫一下午了!!
...全文
399 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
archy123 2013-03-15
  • 打赏
  • 举报
回复
搞定了,散分结贴!!
Kilnn 2013-03-15
  • 打赏
  • 举报
回复
Application不是你自己new的,系统会帮你new的,你要存全局变量,写成静态的就行了,直接取
zyxel60b 2013-03-14
  • 打赏
  • 举报
回复
引用 3 楼 archy123 的回复:
引用 1 楼 alankobe 的回复:没set进去啊,怎么可能取得到。 在MyApplication里继承个 onCreate方法,里面调用 setResponse(..) set一个进去。 虽然我不知道你这么做的目的是什么。 额是不是我弄错了我new了个新对象 MyApplication myApplication = new MyApplication(……
你已经知道有这个可能了 怎么不试一下
Ada168855 2013-03-14
  • 打赏
  • 举报
回复
引用 3 楼 archy123 的回复:
引用 1 楼 alankobe 的回复: 没set进去啊,怎么可能取得到。 在MyApplication里继承个 onCreate方法,里面调用 setResponse(..) set一个进去。 虽然我不知道你这么做的目的是什么。 额是不是我弄错了我new了个新对象 MyApplication myApplication = new MyApplication(); 应该直接get……
应该是这样
archy123 2013-03-14
  • 打赏
  • 举报
回复
引用 1 楼 alankobe 的回复:
没set进去啊,怎么可能取得到。 在MyApplication里继承个 onCreate方法,里面调用 setResponse(..) set一个进去。 虽然我不知道你这么做的目的是什么。
你说的是初始化全局变量的时候赋值,其实onCreate的时候不初始化值也是可以的。。
archy123 2013-03-14
  • 打赏
  • 举报
回复
引用 1 楼 alankobe 的回复:
没set进去啊,怎么可能取得到。 在MyApplication里继承个 onCreate方法,里面调用 setResponse(..) set一个进去。 虽然我不知道你这么做的目的是什么。
额是不是我弄错了我new了个新对象 MyApplication myApplication = new MyApplication(); 应该直接get了吧。MyApplication myApplication=getApplication(); 然后再 myApplication.set..........
archy123 2013-03-14
  • 打赏
  • 举报
回复
引用 1 楼 alankobe 的回复:
没set进去啊,怎么可能取得到。 在MyApplication里继承个 onCreate方法,里面调用 setResponse(..) set一个进去。 虽然我不知道你这么做的目的是什么。
已经set了

        MyApplication myApplication = new MyApplication();
        myApplication.setResponse(response);
        myApplication.setMap(response.cookies());
alankobe 2013-03-14
  • 打赏
  • 举报
回复
没set进去啊,怎么可能取得到。 在MyApplication里继承个 onCreate方法,里面调用 setResponse(..) set一个进去。 虽然我不知道你这么做的目的是什么。

80,351

社区成员

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

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