中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android中怎么實現Activity 間的傳值

發布時間:2021-06-26 17:01:12 來源:億速云 閱讀:114 作者:Leah 欄目:移動開發

今天就跟大家聊聊有關Android中怎么實現Activity 間的傳值,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

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

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

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

今天自己做了一個小demo,感覺還不錯:不通過全局靜態變量而實現兩個Activity之間傳遞數據。 

一個SendActivity(保存數據的一方,或者是傳遞數據的一方),一個ReceiverActivity(使用數據的一方)為了簡單起見,每個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(); 
        //第一參數取的是這個應用程序的Context,生命周期是整個應用 
        //第二個參數是要跳轉的頁面的全路徑 
        intent.setClassName( getApplicationContext(), "com.example.testofdialog.ReceiveActivity" ); 
        //Bundle類用作攜帶數據,它類似于Map,用于存放key-value名值對形式的值 
        Bundle b = new Bundle();  
        b.putString("我是key", "這里就是你要傳遞的內容了"); 
        //此處使用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) {         
        //最后的參數一定要和發送方的相同,否則得到空值 
        String rString = getIntent().getExtras().getString("我是key"); 
         
        Toast.makeText(ReceiveActivity.this, rString, Toast.LENGTH_SHORT).show(); 
      } 
    }); 
  } 
}

看完上述內容,你們對Android中怎么實現Activity 間的傳值有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

会泽县| 方山县| 安徽省| 贵溪市| 惠安县| 都安| 阳山县| 开化县| 息烽县| 玉龙| 吐鲁番市| 竹北市| 新绛县| 股票| 旬邑县| 区。| 汝南县| 连云港市| 南郑县| 改则县| 肥东县| 澄江县| 杭州市| 石棉县| 江西省| 乐至县| 台北县| 怀宁县| 登封市| 封开县| 荔波县| 新竹县| 溧阳市| 吴旗县| 甘肃省| 舟曲县| 满城县| 金平| 称多县| 牟定县| 武穴市|