वर्तमान में मुझे एक "RELATIVE_LAYOUT" कंटेनर मिला है जिसका मैं अपना टुकड़ा जोड़ने के लिए उपयोग कर रहा हूं। मैं रिलेवेटलाइट कंटेनर में खंड एक्सएमएल लेआउट को लोड करने के लिए ऑनक्लिक लिस्टनर का उपयोग कर रहा हूं।बटन पर फ्रैगमेंट जोड़ने/निकालने के लिए कैसे क्लिक करें?
जो मैं प्राप्त करना चाहता हूं वह यह है कि जब मैं एक बार बटन दबाता हूं, तो टुकड़ा लोड होना चाहिए ... और जब मैं इसे फिर से दबाता हूं तो टुकड़ा हटा दिया जाना चाहिए। मैं पहले से ही पूर्णांक का उपयोग करने की कोशिश कर रहा हूं यह पहचानने के लिए कि क्या टुकड़ा लोड किया गया है, लेकिन असफल रहा। किसी भी मदद की सराहना की ...
कोड:
public class MainActivity extends Activity {
Button B1,B2;
int boolb1=0, boolb2=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
B1 = (Button)findViewById(R.id.btn1);
B2 = (Button)findViewById(R.id.btn2);
B1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
FragmentManager fm = getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
FragmentOne f1 = new FragmentOne();
if(boolb1==0)
{ft.add(R.id.frg1, f1);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
boolb1=1;}
else
{ft.remove(f1);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_CLOSE);
boolb1=0;}
//ft.addToBackStack("f1");
ft.commit();
}
});
B2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
FragmentManager fm = getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
FragmentTwo f2 = new FragmentTwo();
if(boolb2==0) {
ft.add(R.id.frg2, f2);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
boolb2=1;
} else {
ft.remove(f2);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_CLOSE);
boolb2=0;
}
//ft.addToBackStack("f2");
ft.commit();
}
});
}
हाँ, मैं सिर्फ जोड़ना होगा कि बेहतर दृष्टिकोण पूरी तरह से दूर करने के लिए है चर "जोड़ा" और बस टुकड़ा प्रबंधक में टुकड़े की presention द्वारा तय .. उस स्थिति में आपको स्क्रीन – Billda
के घूर्णन के बाद राज्य को बहाल करने के साथ कम काम होगा। आप सही हैं, मैंने कोड समायोजित किया है :) –
उत्कृष्ट उत्तर ... एक संदेह हालांकि, पहली बार जब मैं बटन दबाता हूं, जावा एक वस्तु बनाता है FragmentOne f1 और इसे फ्रेगमेंटबेटाग द्वारा लौटाए गए मान को पास करता है, लेकिन टैग "टैग" अभी तक किसी भी टुकड़े से जुड़ा हुआ नहीं है क्योंकि हम उस ब्लॉक में करते हैं। तो, क्या कोई त्रुटि उत्पन्न नहीं करनी चाहिए ??? – Abhi9