संक्षेप अपने प्रश्न का उत्तर आपके मेजबान गतिविधि सूचित करने के लिए और फिर अपने मेजबान गतिविधि है है में FragmentManager का उपयोग कर अपने वर्तमान टुकड़ा कंटेनर की जगह।
दृष्टिकोण में से एक है अपने पहले खंड में एक इंटरफ़ेस बनाना, अपनी मेजबान गतिविधि को इस इंटरफ़ेस में रजिस्टर/सुनें (कार्यान्वित करें) और फिर अपने FragmentManager को श्रोता कॉलबैक पर दूसरे खंड के साथ कंटेनर सामग्री को प्रतिस्थापित करने के लिए रखें।
मैं ट्यूटोरियल के बारे में निश्चित नहीं हूँ, लेकिन यहाँ मेरी टुकड़ा है: पहले टुकड़ा
public class First extends Fragment{
private static onMySignalListener listener;
//call this function from whatever you like i.e button onClickListener
public void switchWindow() {
if(listener != null){
listener.onMySignal();
}
}
public interface onMySignalListener {
//customize this to your liking
//plain without argument
void onMySignal();
//with argument
void onMySignalWithNum(int mNum);
}
public static void setOnMySignalListener(onMySignalListener listener) {
First.listener = listener;
}}
होस्ट गतिविधि
public class HostActivity extends FragmentActivity implements onMySignalListener{
private final String ADD_TAG_IF_NECESSARY = "mTag";
@Override
public void onCreate(Bundle ssi) {
setContentLayout(R.layout.main);
FirstFragment.setOnMySignalListener(this);
}
@Override
public void onMySignal() {
//if you're using compat library
FragmentManager manager = getSupportFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
//initialize your second fragment
sfragment = SecondFragment.newInstance(null);
//replace your current container being most of the time as FrameLayout
transaction.replace(R.id.container, fragment, ADD_TAG_IF_NECESSARY);
transaction.commit();
}
@Override
public void onMySignalWithNum(int mNum) {
//you can do the same like the above probably with your own customization
}}
यह केवल कि कैसे आप इंटरफ़ेस को लागू होता है पर एक उदाहरण है कृपया अपने आप को साफ करो। और कृपया ध्यान दें कि यह प्रभावी नहीं है यदि आपके पास बहुत कुछ टुकड़ा है जो किसी चीज़ के बारे में आपकी मेजबान गतिविधि को सूचित करना चाहता है। ऐसा करने से आप अपनी मेजबान गतिविधि में विभिन्न श्रोता को लागू कर सकते हैं।
स्रोत
2012-02-01 14:21:43
लेकिन यदि आप केवल पोर्ट्रेट लेआउट को देखते हैं तो यह ट्यूटोरियल पूरी तरह मान्य है। – Warpzit
@ Warpzit, लेकिन ट्यूटोरियल मुझे पोर्ट्रेट लेआउट में दो गतिविधियां बनाने के लिए कहता है, प्रत्येक टुकड़ा प्रत्येक के लिए, है ना? –