萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> 安卓開發 >> Android實現Activities之間進行數據傳遞的方法

Android實現Activities之間進行數據傳遞的方法

   Android實現Activities之間進行數據傳遞的方法

  本文實例講述了Android實現Activities之間進行數據傳遞的方法。分享給大家供大家參考。具體分析如下:

  首先,先說明一下Activity的啟動及關閉:

  1. startActivity(Intent intent); 啟動Activity

  finish(); 結束當前Activity

  2. startActivityForResult(Intent intent, int requestCode); 以指定的請求碼requestCode啟動Activity

  finishAcitivity(int requestCode); 結束以startActivityForResult(Intent intent, int requestCode)方法啟動的Activity

  假如有多個Activity,那麼我們要關閉其中一個,那麼就可以設置requestCode,來關閉相對應的Activity。

  接著,我們來講數據傳遞。問題是這樣的:假如我們從頁面A到頁面B,A中有一些數據,比如用戶信息(用戶名,賬號,密碼等),從A中進入到頁面B,在B中我們要獲取這些數據信息,要怎麼進行傳遞呢?

  Intent提供了各種方法來攜帶額外的數據信息:

  putExtras(Bundle data):向Intent中放入藥攜帶的數據包

  Bundle getExtras():取出Intent中攜帶的數據包,得到的是一個Bundle對象

  putExtra(String name, Xxx value):向Intent中按照鍵值對key-value形式存入數據信息

  getXxx(String name):從Intent中按照key獲取相對應的數據信息

  putXxx(String key, Xxx data):向Bundle中放入Xxx類型的數據信息

  getXxx(String key):從Bundle中獲取key對應的數據信息

  putSerializable(String key, Serializable data):向Bundle中放入一個可以序列化的對象

  getSerializable(String key, Serializable data):從Bundle中取出一個可以序列化的對象

  有了以上的這些方法我們就可以進行數據傳遞了:

  方法如下:

  1. 在頁面A中點擊按鈕bn,跳轉到頁面B代碼如下:

  ?

1 2 3 4 5 6 7 8 9 10 11 12 int requestCode = 0; bn.setOnClickListener(new OnClickListener()) { @Override public void onClick(View source) { Intent intent= new(A.this, B.class); startActivityForResult(intent, inquestCode); //打開指定的Activity B,並等待返回的結果, //其中inquestCode是請求碼 } }

  2. 在B頁面中添加數據,代碼如下:

  ?

1 2 3 4 5 6 7 Intent intent = getIntent(); //獲取當前啟動的Acitivity B所對應的Intent intent.putExtra("數據內容","我是李明"); //向Intent中綁定數據信息"我是李明" B.this.setResult(1, intent); //設置結果碼,並設置結束之後退回的Activity B.this.finish();

  3. 在A中獲取數據信息,代碼如下:

  在頁面A中,為了獲取B中返回的結果,我們應該重寫A頁面中的onActivityResult()方法,當B返回結果時,這個方法將會被調用:

  ?

1 2 3 4 5 6 7 8 9 10 11 12 String myData; @override public void onAcitivityResult(int requestCode,int resultCode,Intent intent) //重寫該方法以回調方式來獲取B返回的結果 { if(requestCode==0&&resultCode==1) { Bundle data = intent.getExtras(); String myResultData = data.getString("數據內容"); //這樣myResultData就是我們要從B中傳遞過來的數據信息了 } }

  總結,通過使用Intent中的方法我們可以實現不同Activity之間的數據傳遞,通過設置標識碼和結果碼,我們可以有選擇的打開關閉不同的Activity,這就是Activity之間的數據傳遞。

  希望本文所述對大家的Android程序設計有所幫助。

copyright © 萬盛學電腦網 all rights reserved