bundle的認識:
一種存放字串和Parcelable類型資料的map類型的容器類,通過存放資料鍵(key)擷取對應的各種類型的值(value),而且必須通過鍵(key)擷取。
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