搜尋此網誌

2012年11月27日 星期二

Android 資訊傳遞 Bundle 用法

在開始之前我們要先看一下意圖 Intent 的轉換操作,在上篇中我們單純解釋如何轉換不同的 Activity 。但是我們在轉換 Activity 時需要傳遞一些參數資訊到下一個 Activity 中時,我們就需要使用到 Bundle 這個方式。

Bundle 包括幾個動作流程:
送出:
1.建立 bundle
2.設定 bundle 內容
3.將 bundle 交給 intent 傳遞
接收:
1.接收 bundle
2.取得 bundle 內容

來看一下實際的範例吧!
送出:
Intent intent = new Intent(MainActivity.this,Activity2.class);
     Bundle bundle = new Bundle();
     bundle.putString("key", c);
     intent.putExtras(bundle);
startActivity(intent);
接收:
Bundle bundle = this.getIntent().getExtras();
c =  bundle.getString("key");


java 對於變數的型態是非常嚴格的,因此在我們建立 bundle 內容時,就必須要先宣告好他是 String 或是 Int。而接收時就要按照對應的方式進行接收。
例如:
bundle.putString 對應到 bundle.getString()
bundle.putInt 對應到 bundle.getInt()
bundle 可以容納多組的變數內容,只需要重複宣告 put 的內容就可以了
例如:
Bundle bundle = new Bundle();
bundle.putString("key", c);
bundle.putInt("key2", c2);
intent.putExtras(bundle);
就可以傳遞 key 和 key2 兩組參數給下一個 Intent

2 則留言:

  1. 謝謝大大!!

    想請問大大一個問題
    如果第一頁要傳到第三頁,也就是要在第二頁寫第一頁傳來的的值送到第三頁嗎

    回覆刪除
    回覆
    1. 理論上是的
      不過有個很蠢的方式也可以
      http://wolf-android.blogspot.tw/2015/10/android-sharedpreferences.html
      直接把值存起來如何

      刪除