Jawaban:
Bundel umumnya digunakan untuk mengirim data antara berbagai aktivitas Android. Itu tergantung pada Anda apa jenis nilai yang ingin Anda sampaikan, tetapi bundel dapat menampung semua jenis nilai dan meneruskannya ke aktivitas baru.
Anda bisa menggunakannya seperti ini:
Intent intent = new...
Intent(getApplicationContext(), SecondActivity.class);
intent.putExtra("myKey", AnyValue);
startActivity(intent);
Anda bisa mendapatkan nilai yang diteruskan dengan melakukan:
Bundle extras = intent.getExtras();
String tmp = extras.getString("myKey");
Anda dapat menemukan info lebih lanjut di:
Pass data antara aktivitas dengan menggunakan Bundle
dan Intent
objek.
Pertama Anda membuat Bundle
objek
Bundle b = new Bundle();
Kemudian, kaitkan data string yang disimpan anystring
dengan kunci bundel"myname"
b.putString("myname", anystring);
Sekarang, buat Intent
objek
Intent in = new Intent(getApplicationContext(), secondActivity.class);
Pass objek bundel b
ke maksud
in.putExtras(b);
dan memulai aktivitas kedua
startActivity(in);
Dalam aktivitas kedua, kita harus mengakses data yang dikirimkan dari aktivitas pertama
Intent in = getIntent();
Sekarang, Anda perlu mendapatkan data dari bundel
Bundle b = in.getExtras();
Akhirnya, dapatkan nilai dari data string yang terkait dengan nama kunci "myname"
String s = b.getString("myname");
Saya harus menambahkan bahwa bundel digunakan oleh aktivitas untuk meneruskan data ke diri mereka sendiri di masa depan.
Ketika layar berputar, atau ketika aktivitas lain dimulai, metode protected void onSaveInstanceState(Bundle outState)
dipanggil, dan aktivitas dihancurkan. Kemudian, instance lain dari aktivitas dibuat, dan public void onCreate(Bundle savedInstanceState)
dipanggil. Ketika instance pertama dari aktivitas dibuat, bundel itu nol; dan jika bundel itu bukan nol, aktivitas melanjutkan beberapa bisnis yang dimulai oleh pendahulunya.
Android secara otomatis menyimpan teks dalam bidang teks, tetapi tidak menyimpan semuanya, dan bug yang tidak kentara terkadang muncul.
Anti-pola yang paling umum, adalah mengasumsikan bahwa onCreate()
itu hanya inisialisasi. Itu salah, karena itu juga harus mengembalikan keadaan.
Ada opsi untuk menonaktifkan perilaku "re-create activity on rotasi" ini, tetapi itu tidak akan mencegah bug terkait restart, itu hanya akan membuat mereka lebih sulit untuk disebutkan.
Perhatikan juga bahwa satu-satunya metode yang panggilannya dijamin ketika aktivitas akan dihancurkan adalah onPause()
. (Lihat grafik siklus hidup aktivitas dalam dokumen.)
A Bundle
sangat mirip Map
objek Java yang memetakan String
kunci nilai. Ini digunakan untuk menyampaikan informasi antara aktivitas dan komponen aplikasi lainnya. Ini juga digunakan oleh kerangka kerja untuk menangkap dan mengembalikan informasi keadaan.
Alasan Android tidak menggunakan objek biasa Map
untuk ini adalah karena Map
terlalu fleksibel; itu bisa berisi objek (seperti, katakanlah, I / O stream) yang tidak bisa serial. The Bundle
API membatasi jenis objek yang dapat ditambahkan ke bundel dalam sedemikian rupa sehingga isi bungkusan ini dijamin akan serializable. Kerangka kerja Android bergantung pada properti ini.
Saya sarankan Anda membaca dokumentasi tentang Fundamentals Aplikasi . Ini menjelaskan, di antara hal-hal lain, bundel dan maksud apa dan untuk apa mereka digunakan.
Bundel dapat digunakan untuk mengirim data sewenang-wenang dari satu aktivitas ke aktivitas lainnya melalui Intents. Saat Anda menyiarkan Intent, Aktivitas yang tertarik (dan BroadcastRecievers lainnya) akan diberitahukan tentang hal ini. Suatu maksud dapat berisi suatu Bundel sehingga Anda dapat mengirim data tambahan bersama dengan Intent.
Bundel adalah pemetaan nilai kunci, jadi dengan cara mereka seperti Hash, tetapi mereka tidak terbatas pada pemetaan objek String / Foo tunggal. Perhatikan bahwa hanya tipe data tertentu yang dianggap "Parcelable" dan mereka secara eksplisit dijabarkan dalam Bundle API.
Cukup buat bundel,
Bundle simple_bundle=new Bundle();
simple_bundle.putString("item1","value1");
Intent i=new Intent(getApplicationContext(),this_is_the_next_class.class);
i.putExtras(simple_bundle);
startActivity(i);
DALAM "this_is_the_next_class.class"
Anda dapat mengambil item seperti ini.
Intent receive_i=getIntent();
Bundle my_bundle_received=receive_i.getExtras();
my_bundle_received.get("item1");
Log.d("Value","--"+my_bundle_received.get("item1").toString);
Bundel: - Pemetaan dari nilai String ke berbagai jenis Parcelable.
Bundle umumnya digunakan untuk mengirim data antara berbagai aktivitas android.
ketika kita memanggil onPause () lalu onStop () dan kemudian dalam urutan terbalik onStop () ke onPause ().
Data yang disimpan yang digunakan sistem untuk memulihkan keadaan sebelumnya disebut "keadaan instance" dan merupakan kumpulan pasangan nilai kunci yang disimpan dalam objek Bundle.
bundle digunakan untuk berbagi data antar kegiatan, dan untuk menyimpan status aplikasi dalam metode oncreate () sehingga aplikasi akan mengetahui di mana itu dihentikan ... Saya harap ini membantu :)
penggunaan bundel mengirim data dari satu aktivitas ke aktivitas lain dengan bantuan objek maksud; Bundel menyimpan data yang bisa berupa tipe apa saja.
Sekarang saya katakan bahwa cara membuat bundle passing data antara dua aktivitas.
Langkah 1: Aktifitas Pertama
Bundle b=new Bundle();
b.putString("mkv",anystring);
Intent in=new Intent(getApplicationContext(),secondActivity.class);
in.putExtras(b);
startActivity(in);
Langkah 2: Aktifitas Kedua
Intent in=getIntent();
Bundle b=in.getExtras();
String s=b.getString("mkv");
Saya pikir ini berguna untuk Anda ...........
Bundle tidak hanya untuk mentransfer data antara dua komponen yang berbeda, tetapi yang lebih penting itu digunakan untuk mengembalikan nilai yang disimpan sebelum aktivitas dihancurkan ke dalam aktivitas baru.
seperti teks dalam EditText
widget atau posisi gulir dari ListView
.
Aktivitas pertama:
String food = (String)((Spinner)findViewById(R.id.food)).getSelectedItem();
RadioButton rb = (RadioButton) findViewById(R.id.rb);
Intent i = new Intent(this,secondActivity.class);
i.putExtra("food",food);
i.putExtra("rb",rb.isChecked());
Aktivitas kedua:
String food = getIntent().getExtras().getString("food");
Boolean rb = getIntent().getExtras().getBoolean("rb");