यह अगर आप किसी गतिविधि को है और आप बी, सी और Home_Fragment की तरह 3 टुकड़े कर सिर्फ सरल है। अब, यदि आप खंड बी या सी में हैं और वापस बटन दबाएं तो आप होम_फ्रैगमेंट पर हर बार स्थानांतरित करना चाहते हैं।
तो फिर तुम सिर्फ गतिविधि एक में onBackPressed()
विधि ओवरराइड करने के लिए है और यह भी जब आप किसी भी टुकड़ा के लिए कूद, तो एक विशिष्ट टैग या नाम देना है, तो आप गतिविधि ए में है कि टुकड़ा पहचान लेंगे
मैं दे रहा हूँ उदाहरण आप आसानी से समझ सकते हैं कि:
टुकड़ा सी
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.container, new C_fragment(),"xyz").commit();
}
को गतिविधि एक से आगे बढ़ते या आप टुकड़ा बी से आगे बढ़ रहे हैं, तो सी खंड के लिए, और वापस प्रेस पर, आप टुकड़ा डी पर आने के लिए नीचे दिए गए पसंद करते हैं:
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
getActivity().getSupportFragmentManager().beginTransaction()
.add(R.id.container, new C_frament(), "xyz").commit();
((ActionBarActivity) getActivity()).getSupportActionBar().setTitle("Fragment C");
}
});
अब तुम सिर्फ onBackPressed() में विधि ओवरराइड करने के लिए है मुख्य गतिविधि इस प्रकार है:
@Override
public void onBackPressed() {
FragmentManager fragmentManager =getSupportFragmentManager();
if (((C_fragment) getSupportFragmentManager().findFragmentByTag("xyz")) != null
&& ((C_fragment) getSupportFragmentManager().findFragmentByTag("xyz")).isVisible()) {
Fragment fragment = new Home_Fragment();
fragmentManager.beginTransaction()
.replace(R.id.container, fragment)
.commit();
getSupportActionBar().setTitle("Home fragment ");
} else {
super.onBackPressed();
}
}
स्रोत
2015-05-04 07:13:34
यू बटन रख सकते जब बटन दबाता है तो वह अपने आप HME पृष्ठ पर जाता है ... आशय मैं = नए आशय (AccountActivity.this, ContactsActivity.class); startActivity (i); – shassss
"लेकिन मैं चाहता हूं कि पिछली गतिविधि के बजाए उपयोगकर्ता वापस बटन दबाए, ऐप को होम स्क्रीन पर जाना चाहिए" - क्योंकि यह संभव नहीं है कि * उपयोगकर्ता * यह चाहेगा, आपको ऐसा क्यों लगता है कि यह उचित व्यवहार है? – CommonsWare
जिस गतिविधि का मैं उल्लेख कर रहा हूं वह एक संगीत प्लेयर की प्लेयर स्क्रीन है। मैं चाहता हूं कि जब उपयोगकर्ता प्लेलिस्ट से गाना चुनता है तो ऐप प्लेयर एक्टिवेटी पर जाएगा। लेकिन जब खिलाड़ी से बैक बटन दबाया जाता है तो प्रवाह होम स्क्रीन पर या किसी अन्य ऐप पर जाता है जिसे उपयोगकर्ता ने पहले खोला था।उम्मीद है कि मैंने सवाल समझाया है। – reiley