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は、別のコンテキストにデータを渡したり、自分の状態を保存したり、返信したりするデータストレージです.そのデータは永続化された状態ではありません.