मेरे पास मेरी मुख्य गतिविधि में एक सूची है। यहां बताया गया है कि मैंने अपनी टुकड़ा वस्तु कैसे सेट की है।क्या ढेर के ऊपर से टुकड़ा पाने का कोई तरीका है?
FragmentManager fragmentManager = activity.getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
Fragment newFragment = new MyFragment();
fragmentTransaction.replace(R.id.framecontainer, newFragment, "tag");
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
समस्या
मुझे पता है कि टुकड़ा किस तरह वर्तमान में दिखाया जा रहा है है उपयोगकर्ता वापस प्रेस बटन, मैं करने के लिए, कम से कम,
getActionBar().setTitle(title);
getActionBar().setDisplayHomeAsUpEnabled(isEnabled);
invalidateOptionsMenu();
फोन करके कार्रवाई बार और मेनू बदल जब है , ताकि मैं जानता हूं कि एक्शन बार कैसे सेट करें। मैं विभाजन के रूप में खंड में सेटिंग विकल्प स्टोर करता हूं।
String title = fragment.getArguments().getString("KEY_TITLE");
boolean isEnabled = fragment.getArguments().getBoolean("KEY_ISENABLED");
मैं संबंधित सवाल खोज करते हैं, और मैंने महसूस किया कि मैं
MyFragment fragment = (MyFragment) getSupportFragmentManager()
.findFragmentByTag("tag");
बुला हालांकि द्वारा टुकड़ा मिल सकता है, मैं एक कस्टम ढेर सारे टैग की दुकान, और पॉप (कॉल करनी होगी) हर बार जब उपयोगकर्ता onBackPressed()
में वापस बटन दबाता है।
तो, मेरा सवाल यह है कि मेरे लिए स्टैक से वर्तमान दृश्यमान खंड प्राप्त करने का कोई तरीका है?
नोट: कृपया ध्यान रखें कि टुकड़े के प्रकार अलग हैं, केवल माईफ्रैगमेंट ही नहीं।
ऐसा लगता है कि अगर मैं अपने तरीके से करते हैं, मैं स्थापित करने के लिए है कि * * fragmentTransaction.addToBackStack (टैग) ** साथ ही; अन्यथा, मुझे एक NullPointerException मिलेगा। तो ** fragmentManager.getBackStackEntryAt (fragmentManager.getBackStackEntryCount() - 1) .getName(); ** टैग नाम –
हाँ का संदर्भ नहीं है ... आपको नल और खराब गणित की जांच करनी होगी ((getBackStackEntryCount-1)> 0 और ऐसे)।मैंने थोड़े से इसे बहुत जल्दी लिखा था। इसके अलावा, एक टैग के बिना जोड़ा गया फ्रिजमेंट शून्य के रूप में आ जाएगा। – petey
क्या यह अभी भी काम करेगा यदि मैं addToBackStack (null) का उपयोग करता हूं? – umerk44