ndroid中Application是用來保存全局變量的,在package創建的時候就存在了,
到所有的activity都被destroy掉之後才會被釋放掉。所以當我們需要全局變量的時候只要在
application中去實現,通過調用Context的getApplicationContext或者Activity的getApplication方
法來獲得一個Application對象,就可以設置或讀取全局變量的值。
啟動Application時,系統會創建一個PID,即進程ID,所有的Activity就會在此進程上運行。
啟動Application時,系統會創建一個PID,即進程ID,所有的Activity就會在此進程上運行。
那麽我們在Application創建的時候初始化全局變量,同一個應用的所有Activity都可以取到這
些全局變量的值,換句話說,我們在某一個Activity中改變了這些全局變量的值,那麽在同一
個應用的其他Activity中值就會改變。
實例演試:如果把輸入裏的內容設置為全局變量,那麽有下面兩種情況。
具體實現方法如下:
一. 新建共享的全局變量
新建一個共享變量的類WirelessApp,需要繼承Application
import android.app.Application;
/**
* 繼承application,設置全局變量
* @author bixiaopeng 2013-2-18 上午11:32:19
*/
public class WirelessApp extends Application {
private String username;
public String getUsername() {
returnusername;
}
public void setUsername(String username) {
this.username = username;
}
}
二.配置AndroidMainifest.xml
在AndroidMainifest.xml中聲明一下全局變量的類,這時Android就會建立一個全局可用的實例
在Application屬性中設置android:name=".WirelessApp"
三.調用全局變量
可以在其它任何地方使用Content.getApplicationConext()來獲取這個實例,再來獲取全局變量
Java代碼
package com.wirelessqa.testintent;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends Activity {
private EditText edit = null;
private Button button = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
edit = (EditText)findViewById(R.id.edit);
button = (Button)findViewById(R.id.btn_submit);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String result = edit.getText().toString();
//獲得應用程序實例
WirelessApp app = (WirelessApp)getApplicationContext();
//給全局變量賦值
app.setUsername(result);
//啟動另一個activity
Intent intent = new Intent(MainActivity.this, ResultActivity.class);
startActivity(intent);
}
});
}
}
Java代碼
package com.wirelessqa.testintent;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
/**
* 顯示結果的Activity
*
* @author bixiaopeng 2013-2-18 上午11:29:50
*/
public class ResultActivity extends Activity {
private TextView text = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_result);
//獲得應用程序實例
WirelessApp app = (WirelessApp) getApplicationContext();
String result = app.getUsername();//取值
text = (TextView) findViewById(R.id.txt_result);
text.setText(result);
}
}
實例演試:如果把輸入裏的內容設置為全局變量,那麽有下面兩種情況。
一. 新建共享的全局變量
新建一個共享變量的類WirelessApp,需要繼承Application
Java代碼
package com.wirelessqa.testintent;
import android.app.Application;
/**
* 繼承application,設置全局變量
* @author bixiaopeng 2013-2-18 上午11:32:19
*/
public class WirelessApp extends Application {
private String username;
public String getUsername() {
returnusername;
}
public void setUsername(String username) {
this.username = username;
}
}
二.配置AndroidMainifest.xml
在AndroidMainifest.xml中聲明一下全局變量的類,這時Android就會建立一個全局可用的實例
在Application屬性中設置android:name=".WirelessApp"
三.調用全局變量
可以在其它任何地方使用Content.getApplicationConext()來獲取這個實例,再來獲取全局變量
package com.wirelessqa.testintent;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends Activity {
private EditText edit = null;
private Button button = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
edit = (EditText)findViewById(R.id.edit);
button = (Button)findViewById(R.id.btn_submit);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String result = edit.getText().toString();
//獲得應用程序實例
WirelessApp app = (WirelessApp)getApplicationContext();
//給全局變量賦值
app.setUsername(result);
//啟動另一個activity
Intent intent = new Intent(MainActivity.this, ResultActivity.class);
startActivity(intent);
}
});
}
}
四.調用全局變量的值
package com.wirelessqa.testintent;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
/**
* 顯示結果的Activity
*
* @author bixiaopeng 2013-2-18 上午11:29:50
*/
public class ResultActivity extends Activity {
private TextView text = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_result);
//獲得應用程序實例
WirelessApp app = (WirelessApp) getApplicationContext();
String result = app.getUsername();//取值
text = (TextView) findViewById(R.id.txt_result);
text.setText(result);
}
}