2012-02-01 14 views
7

वर्तमान को हटाने और पिछले खंड को कैसे दिखाएं? जैसा कि अगर मैं प्रेस "वापस" बटन हूँपिछले खंड दिखाएँ

मैं ऐसे निर्माण का उपयोग कर रहा:

FragmentManager fm=getFragmentManager(); 
FragmentTransaction ft=fm.beginTransaction(); 
ft.remove(fragment).commit(); 

लेकिन यह सिर्फ वर्तमान टुकड़ा निकाल देता है, पिछले

उत्तर

13

दिखाए बिना आप FragmentTransaction.addToBackStack(null) जहां जोड़ने कॉल करनी होगी जब आप इसे हटाना चाहते हैं तो खंड और फिर FragmentManager.popBackStack() पर कॉल करें। आप जहां बदल रहे हैं टुकड़े ऐसा करने तो

@Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) { 
     if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { 
      if(this.getFragmentManager().getBackStackEntryCount() != 0){ 
       this.getFragmentManager().popBackStack(); 
       return true; 
      } 
      // If there are no fragments on stack perform the original back button event 
     } 

     return super.onKeyDown(keyCode, event); 
    } 

:

FragmentTransaction transaction = getFragmentManager().beginTransaction(); 
transaction.replace(android.R.id.content, new YourFragmentName()); 
transaction.addToBackStack(null); // this is needed for the above code to work 
transaction.commit(); 
+2

और यदि आप ऐसा करते हैं, तो आपको बैक बटन व्यवहार को ओवरराइड नहीं करना होगा। दृश्य खंड स्वचालित रूप से हटा दिया जाएगा और बैकस्टैक में अगला खंड स्वचालित रूप से दिखाया जाएगा जब आप वापस हिट करते हैं। –

+0

यह मेरे लिए काम नहीं कर रहा है मैं v4 लाइब्रेरी का उपयोग कर रहा हूं। –

+0

FragmentManager.popBackStack() खंड को फिर से लोड करना। –

4

अपनी गतिविधि में इस विधि जोड़ें

FragmentManager fm=getSupportFragmentManager(); 
    FragmentTransaction ft=fm.beginTransaction(); 
    ft.remove(fragment).commit(); 

    previousFragment=(SherlockFragment)getSupportFragmentManager() 
    .findFragmentByTag(""+currentTagNum); 
    getSupportFragmentManager().beginTransaction() 
      .show(mFragment) 
      .commit(); 
0

कोशिश निकालने के बाद पिछले टुकड़ा दिखाने के लिए:

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