/ / एक और टुकड़े पर नेविगेट करें - Android, Android- टुकड़े

एक और टुकड़े पर नेविगेट करें - एंड्रॉइड, एंड्रॉइड-टुकड़े

मेरे पास एक FragmentActivity है जिसमें दो टुकड़े हैं। पूर्व के लिए: fragment1 और fragment2। अब टुकड़ा 1 में दो बटन हैं। मुझे fragment1 में एक बटन क्लिक पर fragment3 पर जाने की आवश्यकता है।

FragmentActivity में दो बटन होते हैं और एक खंड स्थान होता है जहां मैं बटन क्लिक पर दो टुकड़ों की जगह ले रहा हूं। यह लेआउट है।

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".OnlineActionsActivity" >

<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical" >

<Button
android:id="@+id/btn1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="onSelectFragment"
android:text="fr1" />

<Button
android:id="@+id/btn2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="onSelectFragment"
android:text="fr2" />


</LinearLayout>

<LinearLayout
android:id="@+id/fragment_place"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="3"
android:orientation="vertical" >
</LinearLayout>

अब मैं एक प्रकार से खो गया हूँ कि कैसे अपना लक्ष्य प्राप्त करूँ !! जब से मैं एक टुकड़ा नहीं है, इसलिए मैं एक टुकड़ा नहीं हूं।

और यह भी कि कैसे fragment1 का लेआउट कैसा दिखेगा !! बहुत अच्छा होगा अगर कोई मेरी मदद कर सके।

उत्तर:

जवाब के लिए 0 № 1

आपको इस लिंक का संदर्भ देना चाहिए: यहाँ

यह निश्चित रूप से आपकी मदद करेगा ।।


जवाब के लिए 0 № 2

अंशों की विधि है getFragmentManager() कि आप टुकड़ा के अंदर टुकड़े लेनदेन करने के लिए उपयोग कर सकते हैं।


जवाब के लिए 0 № 3

आप Fragment1 में कोड की कुछ पंक्ति लिखकर अपने टुकड़े को खंड से अपडेट कर सकते हैं।

आपके Fragment1 के लेआउट में सिंपल बटन होगा और आपको इस बटन पर एक ऑन्ग्लिकलिस्टर सेट करना चाहिए और इस कोड को onClick () विधि में लिखना चाहिए।

final Activity a = getActivity();
if (a instanceof YourFragmentActivity) {
final YourFragmentActivity activity = (YourFragmentActivity) a;
activity.updateContent(Fragment3.class.getSimpleName());
}

और यह अद्यतन विधि है FragmentActivity में:

public void updateContent(String tag) {

menulist = (ListView) findViewById(R.id.listView);

Fragment fragment=null;


final FragmentManager fm = getSupportFragmentManager();
final FragmentTransaction tr = fm.beginTransaction();

if (currentContentFragmentTag != null) {
final Fragment currentFragment = fm.findFragmentByTag(currentContentFragmentTag);
if (currentFragment != null)
tr.hide(currentFragment);
}

if (tag.equals(Fragment1.class.getSimpleName())) {
final Fragment foundFragment = fm.findFragmentByTag(tag);
if (foundFragment != null) {
fragment = foundFragment;
}
else {
fragment = new Fragment1();
}
} else if (tag.equals(Fragment2.class.getSimpleName())) {
final Fragment foundFragment = fm.findFragmentByTag(tag);
if (foundFragment != null) {
fragment = foundFragment;
}
else {
fragment = new Fragment2();
}
} else if (tag.equals(Fragment3.class.getSimpleName())) {
final Fragment foundFragment = fm.findFragmentByTag(tag);
if (foundFragment != null) {
fragment = foundFragment;
}
else {
fragment = new Fragment3();
}
} else {
return;
}

if (fragment.isAdded()) {
tr.show(fragment);
}
else {
tr.add(R.id.fragment_place, fragment, tag);
}

tr.commit();

currentContentFragmentTag = tag;
ApiConstants.currentFragmentTag = tag;

}