若要將"hello"由ActivityA傳給ActivityB的話首先要在ActivityA中作如下的動作
String text="hello";
Intent intentA = new Intent(ActivityA, ActivityB.class);
intentA.putExtra("variable", text);
startActivity(intentA);
接著可以到ActivityB中去接收就行了
Bundle bundle = getIntent().getExtras();
String text = bundle.getString("variable");
但是使用這個方法的限制就是傳遞的參數只能為String或是可以Serialize的物件,要是你要傳的不符合,那真的就頭大了,這時候就得要靠android.app.Application在Android裡建立一個全域物件來達成了,方法如下:
1.先建立自己的全域物件,裡面隨便你要擺什麼variable都行
public class MyApp extends Application{
int int_test;
boolean boolean_test;
String string_test;
...
}
2.在AndroidManifest.xml裡加上android:name="MyApp",如下
3.然後在你想要讀寫MyApp的Activity透過下面的方式就可以存取你放在MyApp中的任何variable了:
MyApp myapp = ((MyApp)getApplicationContext());
myapp.int_test=12;
if (myapp.boolean_test==false)
myapp.string_test="Error!";
這樣是不是就解決了這個讓人頭大的問題了呢!
No comments:
Post a Comment