के बीच एंड्रॉइड पास डेटा मेरे पास एक Activity
और 5 Fragment
है। पहले Fragment
उपयोगकर्ता इनपुट फोन नंबर पर। अंतिम (पांचवां) Fragment
पर मुझे इस फोन नंबर को प्रदर्शित करने, अन्य फ़ील्ड इनपुट करने और सर्वर पर सभी डेटा भेजने की आवश्यकता है। प्रत्येक Fragment
के लिए मैं अलग प्रेजेंटर (एमवीपी) का उपयोग कर रहा हूं।फ्रैगमेंट्स
पहले खंड से डेटा को अंतिम रूप से कैसे पास किया जाए?
1) मैं टुकड़ों की सभी श्रृंखलाओं से गुजरना नहीं चाहता, क्योंकि उन्हें इस डेटा की आवश्यकता नहीं है।
2) Activity
होस्टिंग में यह डेटा स्टोर करें, मुझे ((SomeActivity)getActivity()).getUserData()
को Fragment
कक्षा के अंदर कॉल करने और प्रस्तुतकर्ता को यह डेटा पास करने की आवश्यकता है।
3) मैंने अंतिम दृष्टिकोण चुना है। मैंने सिंगलटन उपयोगकर्ता डेटा वर्ग बनाया है। यह सरल POJO वर्ग है। मैं पहले Fragment
में आवश्यक डेटा सेट करने के लिए UserData
का उदाहरण बना रहा हूं और डेटा को पुनर्प्राप्त करने और अनुपलब्ध फ़ील्ड जोड़ने के लिए अंतिम Fragment
में इसका उपयोग करने से पहले।
लेकिन मुझे नहीं पता कि सिंगलटन सही समाधान के साथ दृष्टिकोण है। क्योंकि जब मैं Activity
पर जाता हूं तो मुझे सिंगलटन इंस्टेंस को साफ़ करने की आवश्यकता होती है। यदि बेहतर समाधान है?
संपादित
मैं EventBus बारे में सोचा। लेकिन मुझे फ्रैगमेंट से प्रेजेंटर तक डेटा पास करना होगा। अब मैं वर्तमान में UserData.getInstance()
पर कॉल करता हूं और डेटा पुनर्प्राप्त करता हूं। मैं चाहता हूं कि कोड अधिक सुरुचिपूर्ण और सही हो। मैं अधिक अनुभवी डेवलपर्स की राय सुनने के लिए कह रहा हूं कि उपयोग करने के लिए बेहतर क्या है।
क्या आप 'SharedPref' का उपयोग नहीं कर सकते? –
@ रोहित आर्य मुझे नहीं लगता कि यह गतिविधि के अंदर डेटा पकड़ने से बेहतर समाधान है। मुझे सर्वर पर भेजने के लिए केवल यह डेटा चाहिए, लंबे समय तक नहीं –
फिर सिंगलटन एक अच्छा दृष्टिकोण होगा। –