Android 导航到另一个片段

Android 导航到另一个片段,android,android-fragments,Android,Android Fragments,我有一个FragmentActivity,它包含两个片段。例如:片段1和片段2。 现在fragment1有两个按钮。 我需要在fragment1中单击按钮转到fragment3 FragmentActivity有两个按钮和一个片段位置,我在这里替换单击按钮时的两个片段。 这是布局图 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.andr

我有一个FragmentActivity,它包含两个片段。例如:片段1和片段2。 现在fragment1有两个按钮。 我需要在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和fragment2是一个片段而不是一个fragmentactivity,所以我没有getSupportFragmentManager()


还有fragment1的布局会是什么样子!!如果有人能帮助我,那就太好了。

片段具有方法
getFragmentManager()
,您可以使用该方法在片段内部进行片段事务。

您可以通过在Fragment1中编写几行代码,从片段更新片段

Fragment1的布局将包含一个简单的按钮,您应该在此按钮上设置一个onclicklistener,并用onClick()方法编写此代码

这是FragmentActivity中的updateContent方法:

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;

    }
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;

    }