国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

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

2019-10-22 18:29:56
字體:
來源:轉載
供稿:網友

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();       }     });   } } 

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

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


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 惠东县| 长阳| 高邮市| 泾阳县| 老河口市| 海宁市| 麻城市| 洛扎县| 社旗县| 泰兴市| 江华| 景德镇市| 山阴县| 花莲县| 原平市| 潮州市| 乐山市| 田林县| 唐河县| 阿拉善左旗| 新和县| 秦安县| 萨迦县| 湖州市| 乐业县| 饶平县| 土默特右旗| 太原市| 桐梓县| 灯塔市| 华阴市| 阿拉尔市| 宝山区| 射洪县| 浏阳市| 武义县| 额尔古纳市| 师宗县| 汽车| 泽州县| 休宁县|