Passing a Bundle on startActivity ()?

174

Apa cara yang benar untuk memberikan bundel ke aktivitas yang diluncurkan dari yang sekarang? Properti bersama?

yanchenko
sumber

Jawaban:

425

Anda punya beberapa pilihan:

1) Gunakan Bundel dari Intent :

Intent mIntent = new Intent(this, Example.class);
Bundle extras = mIntent.getExtras();
extras.putString(key, value);  

2) Buat Bundel baru

Intent mIntent = new Intent(this, Example.class);
Bundle mBundle = new Bundle();
mBundle.putString(key, value);
mIntent.putExtras(mBundle);

3) Gunakan metode pintas putExtra () dari Intent

Intent mIntent = new Intent(this, Example.class);
mIntent.putExtra(key, value);


Kemudian, dalam Kegiatan yang diluncurkan, Anda akan membacanya melalui:

String value = getIntent().getExtras().getString(key)

CATATAN: Bundel memiliki metode "dapatkan" dan "letakkan" untuk semua jenis primitif, Paket, dan Serializables. Saya hanya menggunakan Strings untuk keperluan demonstrasi.

Jeremy Logan
sumber
20

Anda dapat menggunakan Bundel dari Intent:

Bundle extras = myIntent.getExtras();
extras.put*(info);

Atau seluruh bundel:

myIntent.putExtras(myBundle);

Apakah ini yang Anda cari?

DustinB
sumber
1
Dan dari maksud yang dihasilkan Anda memanggil getIntent (). GetExtras (). Get * () untuk mendapatkan apa yang telah disimpan sebelumnya.
yanchenko
16

Melewati data dari satu Aktivitas ke Aktivitas di android

Niat berisi tindakan dan data tambahan opsional. Data dapat diteruskan ke aktivitas lain menggunakan putExtra()metode maksud . Data dilewatkan sebagai ekstra dan key/value pairs. Kuncinya selalu berupa String. Sebagai nilai, Anda dapat menggunakan tipe data primitif int, float, karakter, dll. Kami juga dapat meneruskan Parceable and Serializableobjek dari satu aktivitas ke aktivitas lainnya.

Intent intent = new Intent(context, YourActivity.class);
intent.putExtra(KEY, <your value here>);
startActivity(intent);

Mengambil data bundel dari aktivitas android

Anda dapat mengambil informasi menggunakan getData()metode pada objek Intent. The Intent objek dapat diambil melalui getIntent()metode.

 Intent intent = getIntent();
  if (null != intent) { //Null Checking
    String StrData= intent.getStringExtra(KEY);
    int NoOfData = intent.getIntExtra(KEY, defaultValue);
    boolean booleanData = intent.getBooleanExtra(KEY, defaultValue);
    char charData = intent.getCharExtra(KEY, defaultValue); 
  }
IntelliJ Amiya
sumber
6

Anda bisa meneruskan nilai dari satu aktivitas ke aktivitas lain menggunakan Bundle. Dalam aktivitas Anda saat ini, buat bundel dan atur bundel untuk nilai tertentu dan berikan bundel itu ke maksud.

Intent intent = new Intent(this,NewActivity.class);
Bundle bundle = new Bundle();
bundle.putString(key,value);
intent.putExtras(bundle);
startActivity(intent);

Sekarang di NewActivity Anda, Anda bisa mendapatkan bundel ini dan mengambil kembali nilai Anda.

Bundle bundle = getArguments();
String value = bundle.getString(key);

Anda juga dapat meneruskan data melalui niat. Dalam aktivitas Anda saat ini, tetapkan niat seperti ini,

Intent intent = new Intent(this,NewActivity.class);
intent.putExtra(key,value);
startActivity(intent);

Sekarang di NewActivity Anda, Anda bisa mendapatkan nilai itu dari niat seperti ini,

String value = getIntent().getExtras().getString(key);
Neha Mehta
sumber
Mengapa menggunakan bundel sementara objek maksud memiliki metode getExtra dan putExtra?
Psychosis404
0

Tulis ini kegiatan yang Anda ikuti:

Intent intent = new Intent(CurrentActivity.this,NextActivity.class);
intent.putExtras("string_name","string_to_pass");
startActivity(intent);

Di NextActivity.java

Intent getIntent = getIntent();
//call a TextView object to set the string to
TextView text = (TextView)findViewById(R.id.textview_id);
text.setText(getIntent.getStringExtra("string_name"));

Ini bekerja untuk saya, Anda bisa mencobanya.

Sumber: https://www.c-sharpcorner.com/article/how-to-send-the-data-one-activity-to-another-activity-in-android-application/

trustidkid
sumber
0

Anda dapat menggunakan kode ini dalam aktivitas pertama Anda :

 Intent i = new Intent(Context, your second activity.class);
        i.putExtra("key_value", "your object");
        startActivity(i);

dan dapatkan objek dalam aktivitas kedua :

 Intent in = getIntent();
    Bundle content = in.getExtras();
   // check null
        if (content != null) {
            String content = content_search.getString("key_value"); 
    }
Pouria Hemati
sumber