全局定义变量在登录页设置值后,在登录后跳转到的页面上获取不到值,一直为空。全局变量的定义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());
}结果怎么都取不到。。
很是郁闷,高手请指点下,迷茫一下午了!!
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());
}结果怎么都取不到。。
很是郁闷,高手请指点下,迷茫一下午了!!
在MyApplication里继承个 onCreate方法,里面调用 setResponse(..) set一个进去。虽然我不知道你这么做的目的是什么。
已经set了
MyApplication myApplication = new MyApplication();
myApplication.setResponse(response);
myApplication.setMap(response.cookies());
MyApplication myApplication = new MyApplication();
应该直接get了吧。MyApplication myApplication=getApplication();
然后再 myApplication.set..........