2012-05-14 7 views
8

Ebeveyn tarafından bir düğmeyi tıklatarak çocuk etkinliklerine başladım. Ve ben çocuk aktivitesinde bazı sonuçların (tip dizgisi) hesaplanması ve çocuğun tekrar Ana Baba'ya gelmesi için bitiriyorum. Bu sonucu, Ebeveynlerin niyetleri veya ekstraları kullanarak elde etmenin daha iyi bir yolu var mı? (Bu sonucu, çocuğa & statik olarak sonuç değişkenini oluşturarak Ebeveyn olarak alabilirim) Lütfen bana yardım edin. Ben android geliştirmeye yeni başlayan biriyim.Android'de Çocuk etkinliği ile Ebeveyn arasındaki sonucu nasıl geri alabilirim?

startActivityForResult(new Intent(ParentActivity.this, ChildActivity.class), ACTIVITY_CONSTANT); 

Ebeveynlerin onActivityResult() dosyasına ne yazmalıyım?

Çocuk Aktivite olarak: Yerine startActivityForResult(new Intent(ParentActivity.this, ChildActivity.class), ACTIVITY_CONSTANT);

Sen faaliyetleri arasındaki değerler geçirmek için putExtras() yöntemini kullanabilirsiniz ait

cevap

27

Intent data = new Intent(); 
data.putExtra("myData1", "Data 1 value"); 
data.putExtra("myData2", "Data 2 value"); 
// Activity finished ok, return the data 
setResult(RESULT_OK, data); 
finish(); 

Ve Veli aktivitesinde

, sen onActivityResult geçersiz kılabilirsiniz() ve Intent parametresine sahip olabileceğiniz ve bu yöntemin Intent parametresinden intent.getStringExtra veya intent.getSerializableExtra gibi alt etkinliklerden geçirilen fazladan değerleri alabilirsiniz. Veli Bir Etkinlikte

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (resultCode == RESULT_OK && requestCode == REQUEST_CODE) { 
     if (data.hasExtra("myData1")) { 
      Toast.makeText(this, data.getExtras().getString("myData1"), 
       Toast.LENGTH_SHORT).show(); 
     } 
    } 
} 
+0

Sonuç, Çocuktan Ebeveyne nasıl döner? Ebeveynten Çocuk'a değerleri aktarmak istiyorsanız, cevabınız iyi çalışır. Ancak, çocuğumdaki sonucu hesapladıktan ve sonucu ebeveynime verdikten sonra çocuk aktivitemi bitirmem gerekiyor. – SANDHYA

+0

@SANDHYA Lütfen güncellenmiş kodu kontrol edin. Çocuktan ebeveyne veri aktarmak için setResult() yöntemini kullanmanız gerekir. –

+1

Mükemmel. Teşekkürler – SANDHYA

3

Ebeveyninizin aktivitesinin geri gönderilen sonucuna çocuk aktivitesinde
Intent intent = new Intent(getApplicationContext(), yourChildActivity.class); 
intent.putExtra("key", "value"); 
startActivityForResult(intent, ACTIVITY_CONSTANT); 

Intent data = new Intent(); 
data.putExtra("key1", "value1"); 
data.putExtra("key2", "value2"); 
// Activity finished return ok, return the data 
setResult(RESULT_OK, data); 
finish(); 

içinden ve çocuk aktivite sonucu bilgi almak: Örneğin

Ebeveyn etkinliğiniz

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (resultCode == RESULT_OK && requestCode == REQUEST_CODE) { 
     if (data.hasExtra("key1") && data.hasExtra("key2")) { 
      Toast.makeText(
       this, 
       "Your reult is : "data.getExtras().getString("key1") + " " + data.getExtras().getString("key2"), 
       Toast.LENGTH_SHORT).show(); 
     } 
    } 
}