轉自:http://blog.csdn.net/wangyang2698341/article/details/8221247
bundle:
一種存放字符串和Parcelable類型數據的map類型的容器類,通過存放數據鍵(key)獲取對應的各種類型的值(value),而且必須通過鍵(key)獲取。
根據google官方的文檔(http://developer.android.com/reference/android/os/Bundle.html)
Bundle類是一個key-value對,“A mapping from String values to various Parcelable types.”
類繼承關係:
java.lang.Object
android.os.Bundle
Bundle類是一個final類:
public final class
Bundle
extends Objectimplements Parcelable Cloneable
bundle的用法:
Bundle相當於Map類,就是一個映射,用Bundle綁定數據,便於數據處理
它主要作用於Activity之間的數據傳遞.
//TestBundle.java
Bundle bundle = new Bundle();//創建一個句柄
bundle.putString("name", nameinfo);//將nameinfo填充入句柄
Intent mIntent = new Intent(TestBundle.this,TestBundle_getvalue.class);
mIntent.putExtras(bundle);
startActivity(mIntent);
//TestBundle_getvalue.java
Bundle bundle = getIntent().getExtras();//獲取一個句柄
String nameString=bundle.get("name");//通過key爲“name”來獲取value即 nameString.
/*
*進行相關操作
*/
bundle的實例:
第一個Activity發出參數!
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.MotionEvent;
public class TestBundle extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
public boolean onTouchEvent(MotionEvent event) {
Intent intent = new Intent();
intent.setClass(TestBundle.this, Target.class);
Bundle mBundle = new Bundle();
mBundle.putString("Data", "hello, bear");//壓入數據
intent.putExtras(mBundle);
startActivity(intent);
finish();
return super.onTouchEvent(event);
}
}
第二個Activity,接收參數
import android.app.Activity;
import android.os.Bundle;
public class Target extends Activity{
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Bundle bundle = getIntent().getExtras();
String data=bundle.getString("Data");//讀出數據
setTitle(data);
}
}
另外onCreate(Bundle savedInstanceState) 中的savedInstanceState用於當前activity被切換之前保存臨時數據,以便在下次返回時顯示之前的數據的。因此在想使用Bundle savedInstanceState保存臨時數據,就應該在onCreate(Bundle savedInstanceState)方法中提前寫好savedInstanceState!=null時的邏輯。參照理解:http://blog.sina.com.cn/s/blog_652dd96d0100ug6h.html