AndroidでのBundleの具体的な使用

2438 ワード


一、APIドキュメントの説明
  1.紹介する
異なるActivity間でのデータ転送
  1.重要な方法
clear():Bundleマッピングに保存されているすべてのデータを消去します.
clone():現在のBundleをクローン
containsKey(String key):指定したkeyの値を返します.
getString(String key):指定したkeyの文字を返します.
hasFileDescriptors():バンドルパッケージファイル記述子が含まれているかどうかを示します.
isEmpty():このバンドルマッピングが空の場合はtrueを返します.
PutString(String key,String value):指定したkeyの文字列値を挿入します.
readFromParcel(Parcel parcel):このparcelの内容を読み込む
remove(String key):指定したkeyの値を除去
writeToParcel(Parcel parcel,int flags):このparcelの内容を書き込む
二、実例
public class BundleDemo extends Activity {
	private EditText etName;
	Button btn;

	/*
	* (non-Javadoc)
	* @see android.app.Activity#onCreate(android.os.Bundle)
	*/
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.bundle);
		
		etName = (EditText) findViewById(R.id.etname);
		btn = (Button) findViewById(R.id.btn);
		
		btn.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				String info = etName.getText().toString();
				Bundle bundle = new Bundle();

				  //       
				bundle.putString("name", info);
				Intent intent=new Intent(BundleDemo.this,BundleDemo1.class);
				intent.putExtras(bundle);
				finish();
				startActivity(intent);
			}
		});
	}
}

 
 
public class BundleDemo1 extends Activity {
	private TextView etName;
	/* (non-Javadoc)
	* @see android.app.Activity#onCreate(android.os.Bundle)
	*/
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.b1);

		etName=(TextView)findViewById(R.id.txtname);
		Bundle b=getIntent().getExtras();
		//  Bundle   
		String info=b.getString("name");
		etName.setText("    :"+info);
	}
}

三、SharedPreferencesとの区別
SharedPreferencesは、ユーザーがアプリケーションを開くたびにホームページを開くように、単純なキー値ペアで操作する簡単なストレージ永続化の設定です.xmlファイルにデータを保存します
Bundleは、別のコンテキストにデータを渡したり、自分の状態を保存したり、返信したりするデータストレージです.そのデータは永続化された状態ではありません.