2012-05-14 13 views
8

मैं माता-पिता से बटन के क्लिक पर बाल गतिविधि शुरू कर रहा हूं। और मैं बाल गतिविधि में कुछ परिणाम (प्रकार स्ट्रिंग) की गणना कर रहा हूं और बच्चे को माता-पिता के पास वापस आने के लिए परिष्कृत कर रहा हूं। इरादों या अतिरिक्त का उपयोग करके माता-पिता में परिणाम प्राप्त करने का कोई बेहतर तरीका है? (मैं परिणामस्वरूप परिवर्तनीय को सार्वजनिक रूप से & बच्चे में स्थैतिक बनाकर प्राप्त कर सकता हूं) कृपया मेरी सहायता करें। मैं एंड्रॉइड विकास के लिए एक नौसिखिया हूँ।एंड्रॉइड में बाल गतिविधि से अभिभावक के परिणाम को वापस कैसे प्राप्त करें?

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

मुझे माता-पिता की सक्रियता() पर क्या लिखना चाहिए?

बाल गतिविधि में:

उत्तर

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

आप putExtras() विधि का उपयोग गतिविधियों के बीच मान पास कर सकते हैं करने के बजाय

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(); 

और माता पिता गतिविधि में, आप onActivityResult ओवरराइड कर सकते हैं() और उसके अंदर आप इरादा पैरामीटर और इस विधि के इरादे पैरामीटर से प्राप्त कर सकते हैं, आप बच्चे गतिविधि से पारित अतिरिक्त मूल्यों को पुनर्प्राप्त कर सकते हैं, जैसे intent.getStringExtra या intent.getSerializableExtra।

@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

मैं परिणाम को बाल से अभिभावक से कैसे वापस कर सकता हूं? यदि आपका उत्तर माता-पिता से बच्चे को पास करना है तो आपका उत्तर अच्छी तरह से काम करता है। लेकिन मुझे बच्चे में परिणाम की गणना करने और परिणाम को माता-पिता को वापस करने के बाद अपने बच्चे की गतिविधि को खत्म करने की आवश्यकता है। – SANDHYA

+0

@SANDHYA कृपया अपडेट कोड की जांच करें। आपको बच्चे से माता-पिता को डेटा पास करने के लिए setResult() विधि का उपयोग करना होगा। –

+1

उत्कृष्ट। बहुत धन्यवाद – SANDHYA

3

जनक गतिविधि में

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(); 

के माध्यम से और में बच्चे गतिविधि परिणाम जानकारी प्राप्त:

उदाहरण के लिए

आपकी मूल गतिविधि

@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(); 
     } 
    } 
} 
संबंधित मुद्दे