2012-10-05 16 views
5

में अद्यतन मूल्य को दिखाने के लिए मैं गतिविधि एक है जहाँ मैं A->B->C->Dवापस बटन प्रेस गतिविधि

पर नेविगेट कर सकते Activity D में है मैं एक बटन है, जिसमें user'll प्रेस इस बटन है, यह Activity A पर जाना होगा की जरूरत है । यहां मैं एक नया उदाहरण तैयार करूंगा जहां उपयोगकर्ता यहां मूल्य अपडेट कर सकता है।

मैं गतिविधि समाप्त, यह Activity D से, Activity D पर जाएँ user'll प्रेस Back Button
D->C->B->A
करेंगे और Activity A आ जाएगा।

मुझे Activity A में अद्यतन मूल्य दिखाना होगा, मैं 'गतिविधि ए' में मूल्य कैसे अपडेट कर सकता हूं?

+1

@RobinHood जो भयानक होगा (ऑनस्यूम)! –

उत्तर

4

आप startActivityForResult() रों की एक पूरी गुच्छा है और मूल रूप से करना चाहते करने जा रहे हैं वापस ए डी से उन्हें श्रृंखला

यहाँ देखें: How can I pass values between Activities on Android?

वैकल्पिक रूप से, आप मान संग्रहीत कर सकता है SharedPreferences के रूप में और मूल गतिविधि पर लौटने के बाद, इसे बाद में देखें।

0

अपनी डी गतिविधि में इस स्निपेट को शामिल करें।

@Override 
public void onBackPressed(){ 
    aMethodToUpdateYourActivityA(); 
    } 
2

अपने डेटा को बचाने के लिए Shared Preferences का उपयोग करें। इस प्रकार आप अपनी सभी गतिविधियों में डेटा प्राप्त करेंगे।

0

आपको गतिविधि जीवन चक्र और डेटा के प्रबंधन के लिए यहाँ Activity

अपने प्रश्न आप अपनी गतिविधि ए

@Override 
public void onResume(){ 
    //Update your data here 
} 

के अंदर अपने onResume विधि से अपडेट आंकड़ों के लिए क्या करना चाहिए आपकी चिंता का विषय हैं के लिए के रूप में के बारे में अधिक सीख सकते हैं उनके बीच डेटा कैसे पास करना है, आपको शायद Shared preferences का उपयोग करना चाहिए, क्योंकि बहुत सारी गतिविधियों पर startActivityForResult का भार वास्तव में सलाह नहीं दी जाती है। क्या यह जरूरी है कि यह जरूरी है? अगर उपयोगकर्ता डेटा अपडेट करता है तो यह आसान होगा, आप केवल एक्टिविटीए शुरू करेंगे और सीधे डेटा पास करेंगे।

0

यह 2 तरीकों से किया जा सकता है:

  1. उपयोग साझा वरीयताओं को और अपने अपडेट किए गए मूल्य की दुकान है, तो onResume() गतिविधि एक की, एक ही साझा वरीयताओं से इसे पढ़ा और मान को अद्यतन।

  2. startActivityForResult का उपयोग करके लॉन्च गतिविधियां, और इरादे ऑब्जेक्ट का उपयोग करके मान एकत्रित करें और इसे सेटरसेट का उपयोग करके पिछली गतिविधियों में वापस भेज दें।

+0

आपकी सभी मदद के लिए धन्यवाद – mohan

4

मुझे लगता है कि आप अपनी पीठ बटन पर क्लिक डेटा रखने या स्टेटिक चर उपयोग करने के लिए SharedPreference उपयोग करना चाहिए।

// ------------------ संग्रहीत करने के लिए डेटा ------------------

SharedPreferences.Editor editor = sharedPreferences.edit(); 
       editor.putInt("key", countValue); 
       editor.commit(); 

// --------------------- डेटा प्राप्त करने के लिए ------------------

if ((keyCode == KeyEvent.KEYCODE_BACK)) { 
    Intent home=new Intent(PersentActivity.this,DesiredActivity.class); 

       sharedPreferences = getSharedPreferences("MY_SHARED_PREF", MODE_PRIVATE); 
      int countValue = sharedPreferences.getInt("key", 0); 

       startActivity(home); 

       return true; 
      } 
1

यदि आप Activity A अपडेट करते समय डेटा संग्रहीत नहीं कर रहे हैं, तो मुझे लगता है कि उन्हें Activity A के स्थिर चर में बेहतर स्टोर करें और अपने onResume() में डेटा लोड करें।

यदि आपके पास डेटाबेस है तो अपने onResume() में डेटाबेस से डेटा को Activity A में संग्रहीत करें।

संबंधित मुद्दे