Saya memiliki 2 aktivitas, Activity1 dan Activity2 .
Di Activity1
Saya sudah Tombol dan TextView . Ketika tombol diklik Activity2 dimulai.
Di Activity2
Saya sudah EditText .
Saya ingin menampilkan data yang diambil dari EditText di Activity2 di TextView di Activity1 ketika kembali ditekan dari Activity2 .
dapatkah seseorang membantu saya dengan kode untuk membuat ini berfungsi?
android
android-activity
parent-child
pass-data
kumareloaded
sumber
sumber
startActivityForResult
Activity2
menempatkan nilai dalam penyimpanan persisten danActivity1
membacanya dari sana.Jawaban:
Mulai Activity2 dengan
startActivityForResult
dan gunakansetResult
metode untuk mengirim data kembali dari Activity2 ke Activity1. Di Activity1 Anda harus menggantionActivityResult
untuk memperbaruiTextView
denganEditText
data dari Activity2.Sebagai contoh:
Di Activity1 , mulai Activity2 sebagai:
Di Activity2 , gunakan
setResult
untuk mengirim kembali data:Dan di Activity1 , terima data dengan
onActivityResult
:Jika Anda bisa, gunakan juga SharedPreferences untuk berbagi data di antara Aktivitas.
sumber
SharedPreferences
maka lihat contoh iniActivity1 harus memulai Activity2 dengan
startActivityForResult()
.Activity2 harus digunakan
setResult()
untuk mengirim data kembali ke Activity1 .Dalam Activity2 ,
Dalam Activity1 ,
sumber
Jawaban lain tidak bekerja ketika saya meletakkan
setResult
dionBackPressed
. Mengomentari panggilan ke superonBackPressed
dan meneleponfinish
secara manual memecahkan masalah:Dan dalam aktivitas pertama:
sumber
Ambil ini sebagai alternatif dari startActivity untukResult.Tetapi perlu diketahui bahwa untuk kasus seperti itu pendekatan ini bisa mahal dalam hal kinerja tetapi dalam beberapa kasus Anda mungkin perlu menggunakan.
Dalam Activity2,
Dalam Activity1,
sumber
Dari FirstActivity Anda, panggil SecondActivity menggunakan metode startActivityForResult ().
Sebagai contoh:
Di SecondActivity Anda, atur data yang ingin Anda kembalikan ke FirstActivity. Jika Anda tidak ingin kembali, jangan atur apa pun.
Misalnya: Di secondActivity jika Anda ingin mengirim kembali data:
Jika Anda tidak ingin mengembalikan data:
Sekarang di kelas FirstActivity Anda, tulis kode berikut untuk metode onActivityResult ().
sumber
ini adalah Activity1 pertama Anda.
Dari sini Anda memulai Activity2.class Anda dengan menggunakan startActivityForResult (mRequestCode, Activity2.class);
Sekarang ini adalah Aktivitas kedua Anda, nama adalah Activity2
Sekarang ketika Anda selesai dengan Aktivitas kedua Anda maka Anda memanggil metode setResult (), dari onBackPress () atau dari sembarang tombol klik ketika Activity2 Anda akan dihancurkan maka metode panggilan balik Activity1 Anda diActivityResult () akan memanggil dari sana Anda bisa mendapatkan data dari niat ..
Semoga ini bisa membantu Anda ... :)
sumber
Baca ini:
Artikel-artikel ini akan membantu Anda memahami cara mengirim data antara dua aktivitas di Android.
sumber
TL; Penggunaan DR
Activity.startActivityForResult
Jawaban panjang:
Anda harus mulai dengan membaca dokumentasi pengembang Android. Khususnya topik pertanyaan Anda dicakup dalam
Starting Activities and Getting Results
bagianActivity
dokumentasi.Adapun kode contoh, Android SDK memberikan contoh yang baik. Juga, jawaban lain di sini memberi Anda potongan kode sampel pendek untuk digunakan.
Namun, jika Anda mencari alternatif, baca pertanyaan SO ini . Ini adalah diskusi yang baik tentang cara menggunakan
startActivityForResults
dengan fragmen, serta beberapa pendekatan lain untuk meneruskan data antar kegiatan.sumber
dan saya memiliki masalah yang ingin saya lakukan pada pengiriman tipe data ini di Soft Button yang saya buat dan softKey yang merupakan default di setiap Perangkat Android, jadi saya sudah melakukan ini, pertama saya buat
Intent
di saya "A"Activity
:Kemudian di Aktivitas kedua saya, saya telah mendeklarasikan Field di "B" saya
Activity
:kemudian setelah saya membuat permintaan saya berhasil atau setiap kali saya ingin memberi tahu "A" Kegiatan bahwa pekerjaan ini berhasil dilakukan di sini mengubah nilai resultCode ke yang sama saya katakan dalam "A"
Activity
yang dalam kasus saya adalah "60" dan kemudian:PS: Ingatlah untuk menghapus
Super
dari Metode onBackPressed jika Anda ingin ini berfungsi dengan baik.maka saya harus memanggil
onActivityResult
Metode dalam Aktivitas "A" saya juga:itu saja, semoga membantu anda. #HappyCoding;
sumber