安卓——不同活動之間數據傳送

最近做一個小軟件,其中用到了不同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;//直接定義靜態變量就行,傳遞過來以後直接顯示靜態變量的值


  這裏只說明了我在打代碼過程中接觸到的兩種方法,還有很多種方法,有興趣的可以查下,別太侷限於幾種方法。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章