2011-03-06 22 views
8

से खंड खंडों को कॉल करें तो, मुझे गतिविधि को पारित करने के लिए मेरे टुकड़े में घटना मिली, तो मैं इसे कैसे बदल सकता हूं ताकि गतिविधि बदले में हो, खंड बी को कुछ करने के लिए सूचित किया जाए। मैं खंड बी को एक कस्टम सूची पॉप्युलेट करना चाहता हूं जब खंड ए में एक सूची आइटम क्लिक किया गया हो। तो, यह घटना को गतिविधि में भेजता है, अब मैं खंड बी में घटनाओं को कॉल करने के लिए गतिविधि कैसे प्राप्त करूं? ;गतिविधि

FragmentB fragmentB = (FragmentB)getFragmentManager().findFragmentById(R.id.fragmentBId); 
fragmentB.performSomeTask(); 

यह मानते हुए कि आपके FragmentB में एक सार्वजनिक रूप से accessibly विधि performSomeTask() कहा जाता है कि निश्चित रूप से है:

उत्तर

32

एक तरह से यह करने के लिए अपनी गतिविधि में इस तरह किया जाएगा

आशा है कि मदद करता है!

+0

मैं बेवकूफ, मैं इसे fragment_b.doTask() को कॉल करके कर सकता हूं अगर इसे सार्वजनिक और स्थैतिक घोषित किया जाता है। – Shaun

+2

यदि आप गतिविधि के ऑनक्रेट विधि में SomeTask विधि को निष्पादित करते हैं और कहें कि आप उस पर कुछ संपादन फ़ील्ड भरें। यदि आप विखंडन की एक्टिविटीक्रेट विधि में edittext प्रारंभ कर रहे हैं तो आपके पास एक शून्य सूचक अपवाद होगा। यहां सबसे अच्छा समाधान क्या है? – Maxrunner

10

सबसे अच्छा अभ्यास शायद दोनों टुकड़ों के लिए इंटरफेस बनाने के लिए है और फिर गतिविधि इंटरफेस को लागू करती है। आप टुकड़ों के बीच अच्छा decoupling करना चाहते हैं ताकि आप उन्हें अन्य स्थानों पर पुन: उपयोग कर सकते हैं।

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