Saya memiliki 3 kelas dalam contoh saya: Kelas A, kegiatan utama. Kelas A memanggil startActivityForResult:
Intent intent = new Intent(this, ClassB.class);
startActivityForResult(intent, "STRING");
Kelas B, kelas ini adalah TabActivity:
Intent intent = new Intent(this, ClassC.class);
tabHost.addTab...
Kelas C, kelas ini adalah Kegiatan reguler:
Intent intent = this.getIntent();
intent.putExtra("SOMETHING", "EXTRAS");
this.setResult(RESULT_OK, intent);
finish();
onActivityResult dipanggil di Kelas A, tetapi resultCode RESULT_CANCELED
bukan RESULT_OK
dan maksud yang dikembalikan adalah nol. Bagaimana cara mengembalikan sesuatu dari Aktivitas di dalam TabHost?
Saya menyadari bahwa masalahnya adalah bahwa Kelas C saya benar-benar berjalan di dalam Kelas B, dan Kelas B adalah apa yang mengembalikan RESULT_CANCELED
kembali ke Kelas A. Saya hanya belum tahu pekerjaan di sekitar.
sumber
http://tylenoly.wordpress.com/2010/10/27/how-to-finish-activity-with-results/
Dengan sedikit modifikasi untuk "param_result"
sumber
setResult
adalah hal utama. Tetapkan untuk sesuatu, atau nilai misalnyaRESULT_OK
dan Anda baik untuk pergi;setResult(RESULT_OK);
. Bantu saya, +1Intent.FLAG_ACTIVITY_FORWARD_RESULT?
sumber
Anda bisa mengimplementasikan onActivityResult di Kelas B juga dan meluncurkan Kelas C menggunakan startActivityForResult. Setelah Anda mendapatkan hasilnya di Kelas B kemudian atur hasilnya di sana (untuk Kelas A) berdasarkan hasil dari Kelas C. Saya belum mencoba ini tetapi saya pikir ini harus bekerja.
Hal lain yang perlu diwaspadai adalah bahwa Aktivitas A tidak boleh menjadi aktivitas Instansi tunggal. Agar startActivityForResult berfungsi, Kelas B Anda harus menjadi sub aktivitas untuk Aktivitas A dan yang tidak mungkin dilakukan dalam aktivitas instance tunggal, Activity baru (Kelas B) dimulai dalam tugas baru.
sumber
Untuk memulai Kegiatan 2 dari Aktivitas 1 dan mendapatkan hasil, Anda bisa menggunakan startActivityForResult dan mengimplementasikan onActivityResult di Aktivitas 1 dan menggunakan setResult di Activity2.
sumber