最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android 中兩個Activity 之間的傳值問題

 更新時間:2017年08月16日 11:42:27   投稿:lqh  
這篇文章主要介紹了Android 中兩個Activity 之間的傳值問題的相關資料,需要的朋友可以參考下

Android 中兩個Activity 之間的傳值問題

在Android項目中,有時需要一些全局的靜態(tài)變量來保存一些數(shù)據(jù),這樣在關閉賦值界面后,其他的頁面還可以調(diào)用這些數(shù)據(jù)。 

但是我們知道,在Java中全局靜態(tài)變量(java中沒有全局變量這一個概念,但是java提供了public static關鍵字來實現(xiàn)一些類似于全局變量的關鍵字)都是在程序加載時就放人到內(nèi)存中,它是存儲在方法區(qū)里的。如果程序不結束,它將一直存在。這是會影響到系統(tǒng)的性能的。那么在android中可不可以不通過這種方式來傳遞值呢? 

今天自己做了一個小demo,感覺還不錯:不通過全局靜態(tài)變量而實現(xiàn)兩個Activity之間傳遞數(shù)據(jù)。 

一個SendActivity(保存數(shù)據(jù)的一方,或者是傳遞數(shù)據(jù)的一方),一個ReceiverActivity(使用數(shù)據(jù)的一方)為了簡單起見,每個Activity對應的布局文件中都只有一個按鈕。

 SendActivity的java代碼

public class SendActivity extends Activity { 
 
  @Override 
  public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
     
    setContentView(R.layout.activity_send); 
     
    //獲取按鈕對象 
    Button btnSendButton = (Button)findViewById(R.id.btnSend); 
    btnSendButton.setOnClickListener(new OnClickListener() {       
      public void onClick(View v) { 
         
        Intent intent = new Intent(); 
        //第一參數(shù)取的是這個應用程序的Context,生命周期是整個應用 
        //第二個參數(shù)是要跳轉(zhuǎn)的頁面的全路徑 
        intent.setClassName( getApplicationContext(), "com.example.testofdialog.ReceiveActivity" ); 
        //Bundle類用作攜帶數(shù)據(jù),它類似于Map,用于存放key-value名值對形式的值 
        Bundle b = new Bundle();  
        b.putString("我是key", "這里就是你要傳遞的內(nèi)容了"); 
        //此處使用putExtras,接受方就響應的使用getExtra 
        intent.putExtras( b );  
        startActivity(intent); 
        // 關閉當前頁面 
        System.exit(0); 
        //無論是exit還是finish都是可以的 
        //SendActivity.this.finish(); 
         
      } 
    }); 
 
  } 
} 

ReceiveActivity的java代碼

public class ReceiveActivity extends Activity { 
 
  @Override 
  public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
     
    setContentView(R.layout.activity_receive); 
     
    Button btnReceiveButton = (Button)findViewById(R.id.btnReceive); 
    btnReceiveButton.setOnClickListener(new OnClickListener() {      
      public void onClick(View v) {         
        //最后的參數(shù)一定要和發(fā)送方的相同,否則得到空值 
        String rString = getIntent().getExtras().getString("我是key"); 
         
        Toast.makeText(ReceiveActivity.this, rString, Toast.LENGTH_SHORT).show(); 
      } 
    }); 
  } 
} 

這里只是介紹了兩個Activity之間的通過Intent傳值的,那么如果有三個Activity是依次顯示的,但是,第三個Activity需要用到第一個Activity中的值,這種方法是否還能夠發(fā)揮功效?是否還有其他更好的方法?

以上就是Android 兩個Activity 之間的傳值問題,如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關文章

最新評論

尼木县| 南木林县| 信宜市| 汾西县| 阜宁县| 桦川县| 五河县| 西平县| 漳平市| 盖州市| 宁武县| 怀柔区| 凯里市| 泰安市| 连江县| 临安市| 呼伦贝尔市| 琼海市| 昌邑市| 汾西县| 淮安市| 万全县| 增城市| 徐水县| 易门县| 青岛市| 娱乐| 邵阳市| 西宁市| 婺源县| 清水县| 辛集市| 乐陵市| 旬邑县| 泽州县| 阿鲁科尔沁旗| 化德县| 梁山县| 东平县| 高邮市| 肥乡县|