最近做一個小軟件,其中用到了不同activity間的數據傳輸,寫點小心得。
方法一:
課本上講解的相關章節使用Bundle:
發送頁面:
Intent intent=new Intent(); //定義意圖
Bundle bundle = new Bundle(); //定義Bundle
bundle.putString("name",sendData);//傳輸key、value對,"name"是自己定義的,可以是其他String值
intent.putExtras(bundle); //將綁定數據放到intent上
intent.setClass(contacts.this,Message.class);//跳轉頁面
startActivity(intent);
接收頁面:
private String data;
//傳來的數據解綁
Bundle bundle = this.getIntent().getExtras(); //將綁定的數據取下
data= bundle.getString("name"); //取bundle內數據
這種方法在使用時不是很方便,假如接收頁還有其他操作,且發送頁不一定發送數據到接收頁時,接收頁還會運行相關解綁的代碼,此時程序就會報錯。
例如,接收頁有個文本框,顯示的內容可能是本頁面操作產生的數據,而也可能是發送頁傳來的數據,當無發送來的數據時,處理和判斷解綁接收的代碼就比較麻煩。
這種情況可以用另一方法:
方法二:
發送頁:
Intent intent = new Intent();
intent.setClass(contacts.this, Message.class);//contacts是發送頁,Message是接收頁
Message.data= senddata;//設置目標頁面的靜態變量值,senddata爲傳送的String值
startActivity(intent);
接收頁:
public static String number;//直接定義靜態變量就行,傳遞過來以後直接顯示靜態變量的值
這裏只說明了我在打代碼過程中接觸到的兩種方法,還有很多種方法,有興趣的可以查下,別太侷限於幾種方法。