標籤:
使用全域變數傳遞資料,所謂的全域變數類似於jee開發中的application變數。申明後,全域調用。只有當記憶體被清理後,才被銷毀。否則一直可以調用。
還是使用點擊一個button,傳遞一個資料到另一個頁面中顯示。
首先,建立工程,然後,開啟mainActivity.xml檔案,然後,添加button。
<Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="使用Application傳遞資料" />
先建立一個MyApp.java類,儲存全域變數
public String name; @Override public void onCreate() { // TODO Auto-generated method stub super.onCreate(); setName("hello"); } public String getName() { return name; } public void setName(String name) { this.name = name; } public MyApp() { // TODO Auto-generated constructor stub }
然後在MainActivity.java中,添加
private Button button; private MyApp myapp; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button = (Button)this.findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub //擷取全域變數資料 myapp=(MyApp)getApplication(); //myapp.setName("world");//可重新賦值 Intent intent = new Intent(MainActivity.this,OtherActivity.class); startActivity(intent); } }); }
建立布局檔案other.xml檔案加入
<TextView android:id="@+id/msg" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
建立OtherActivity.java檔案
public class OtherActivity extends Activity { private MyApp myapp; private TextView textview; public OtherActivity() { // TODO Auto-generated constructor stub } @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.other); textview = (TextView)this.findViewById(R.id.msg); myapp = (MyApp)getApplication(); textview.setText("name---->"+myapp.getName()); }}
最後在資訊清單檔中注意:先在標籤application中加入
<activity android:name=".OtherActivity"></activity>
再在application標籤中加入屬性android:name=".MyApp"
Android 使用全域變數傳遞資料