Bagaimana saya bisa mengirim data dari satu aktivitas (maksud) ke yang lain?
Saya menggunakan kode ini untuk mengirim data:
Intent i=new Intent(context,SendMessage.class);
i.putExtra("id", user.getUserAccountId()+"");
i.putExtra("name", user.getUserFullName());
context.startActivity(i);
android
android-intent
Adham
sumber
sumber
user.getUserAccountId()+""
karena ini akan membuat objek yang tidak perlu untuk dikumpulkan. Pertimbangkan untuk menggunakanString.valueOf(user.getUserAccountId)
, atauInteger.toString(user.getUserAccountId)
sebagai gantinya.Jawaban:
Pertama, dapatkan maksud yang telah memulai aktivitas Anda menggunakan
getIntent()
metode:Jika data tambahan Anda direpresentasikan sebagai string, maka Anda dapat menggunakan
intent.getStringExtra(String name)
metode. Dalam kasus Anda:sumber
getIntent().getStringExtra("id");
untuk mendapatkan string idgetIntent()
metode. Saya sudah memperbarui jawabannya.Dalam kegiatan menerima
sumber
getStringExtra?
null
, seluruh pengambilan ekstra dapat dilewati. Dengan menggunakangetStringExtra
, Anda pada dasarnya mengubahnya menjadi serangkaianif(extras != null) { return extras.getString(name) }
. Satu untuk setiapgetStringExtra
panggilan Anda. Opsi ini akan memeriksanull
sekali dan jika demikian, tidak akan repot membacaBundle
sama sekali. Selain itu,getStringExtra
mungkin akan terus bertanya secaragetExtras
internal setiap kali juga. Jadi, Anda memiliki lebih banyak panggilan ke fungsi.sumber
Add-up
Setel Data
Dapatkan Data
sumber
Alih-alih menginisialisasi Intent baru lain untuk menerima data, lakukan saja ini:
sumber
Jika digunakan dalam FragmentActivity, coba ini:
Halaman pertama memperluas FragmentActivity
Dalam fragmen, Anda hanya perlu menelepon
getActivity()
dulu,Halaman kedua memperluas Fragmen :
sumber
Jika Anda mencoba untuk mendapatkan data tambahan dalam fragmen, maka Anda dapat mencoba menggunakan:
Tempatkan data menggunakan:
Dapatkan data menggunakan:
sumber
Anda bisa mendapatkan semua jenis data tambahan dari niat , tidak peduli apakah itu objek atau string atau jenis data apa pun.
dan solusi terpendek adalah:
sumber
** Masukkan Data dengan Niat - **
** Dapatkan Data dengan Niat - **
jika kami mengirim nilai Integer berdasarkan Intent. ketika kita harus menggunakan 2 Parameter 0 di getIntent (). getIntExtra ("instituteId", 0) kalau tidak kita tidak menggunakan 0 maka android beri saya kesalahan.
sumber
Kotlin
Aktivitas pertama
Aktivitas kedua
Saran
Selalu masukkan kunci dalam file konstan untuk cara yang lebih terkelola.
sumber
Hanya sebuah saran:
Alih-alih menggunakan "id" atau "nama" di i.putExtra ("id" .....) Anda, saya sarankan, ketika masuk akal, menggunakan bidang standar saat ini yang dapat digunakan dengan putExtra (), yaitu Intent.EXTRA_something.
Daftar lengkap dapat ditemukan di Intent (Pengembang Android).
sumber
Kita dapat melakukannya dengan cara sederhana:
Dalam FirstActivity:
Dalam SecondActivity:
sumber
Sampaikan maksud dengan nilai pada Aktivitas Pertama:
Terima niat untuk Aktivitas kedua; -
Kami biasanya menggunakan dua metode untuk mengirim nilainya dan mendapatkan nilainya. Untuk mengirimkan nilai yang akan kita gunakan
intent.putExtra("key", Value);
dan selama menerima berniat kegiatan lain yang akan kita gunakanintent.getStringExtra("key");
untuk mendapatkan data maksud sebagaiString
atau menggunakan beberapa metode lain yang tersedia untuk mendapatkan jenis data (Integer
,Boolean
, dll). Kuncinya mungkin kata kunci apa pun untuk mengidentifikasi nilai berarti nilai apa yang Anda bagikan. Semoga ini akan berhasil untuk Anda.sumber
Anda juga dapat melakukannya seperti ini
// memberi nilai pada niat
// dapatkan nilai dari niat
sumber
Mendapatkan Berbagai Jenis Ekstra dari Intent
Untuk mengakses data dari Intent, Anda harus mengetahui dua hal.
Ada metode yang berbeda di kelas Intent untuk mengekstraksi berbagai jenis tipe data. Ini terlihat seperti ini
Jadi jika Anda tahu tipe data varibale Anda yang Anda atur di otherActivity Anda dapat menggunakan metode masing-masing.
Contoh untuk mengambil String di Aktivitas Anda dari Intent
Daftar berbagai varian metode untuk tipe data yang berbeda
Anda dapat melihat daftar metode yang tersedia di Dokumentasi Intent Resmi .
sumber
sumber
Saya baru saja mengirim jawaban di sini yang mencakup topik ini sedikit lebih detail, termasuk beberapa alternatif.
Ini menggunakan Vapor API , kerangka kerja Android yang terinspirasi jQuery baru yang saya tulis untuk menyederhanakan pengembang Android. Lihat contoh dalam jawaban itu untuk bagaimana Anda dapat dengan mudah mengirimkan data di antara aktivitas.
Itu juga menunjukkan
VaporIntent
, yang memungkinkan Anda untuk melakukan panggilan metode dan memanfaatkan.put(...)
metode kelebihan beban :Anda dapat dengan mudah mengirimkan data ke seluruh aplikasi Anda menggunakan Vapor API , jadi semoga akan membantu Anda dan orang lain selama pengembangan aplikasi.
sumber