在android中,有没有一种方法可以在点击将片段加载到容器中的按钮时提供xml的默认视图

在android中,有没有一种方法可以在点击将片段加载到容器中的按钮时提供xml的默认视图,android,android-layout,android-fragments,Android,Android Layout,Android Fragments,我有一个框架布局,在点击按钮时加载片段,按钮都在片段内,但每当我导航到该片段时,它只显示这些按钮,当我点击它们时,只显示片段。我知道所有的东西都能正常工作,但我想知道是否有一种方法可以为该片段提供默认的xml视图,也就是说,在单击任何按钮之前,用户能够在该框架布局中查看xml? 附言:我对碎片还不熟悉,所以请冷静地详细回答。提前谢谢 java代码是: public class AddHearingFragment extends Fragment { Button b1,b2; @Overrid

我有一个框架布局,在点击按钮时加载片段,按钮都在片段内,但每当我导航到该片段时,它只显示这些按钮,当我点击它们时,只显示片段。我知道所有的东西都能正常工作,但我想知道是否有一种方法可以为该片段提供默认的xml视图,也就是说,在单击任何按钮之前,用户能够在该框架布局中查看xml? 附言:我对碎片还不熟悉,所以请冷静地详细回答。提前谢谢

java代码是:

public class AddHearingFragment extends Fragment {
Button b1,b2;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    if (container != null) {
        container.removeAllViews();
    }
    View view = inflater.inflate(R.layout.hearing,
            container, false);
b1=(Button) view.findViewById(R.id.button8);
    b2=(Button) view.findViewById(R.id.button7);


    b1.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            Myhearingfrag myf = new Myhearingfrag();

            FragmentTransaction transaction = getFragmentManager().beginTransaction();
            transaction.add(R.id.contentFragment, myf);
            transaction.commit();
        }
    });
    b2.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            Myteamhearingfrag myf = new Myteamhearingfrag();

            FragmentTransaction transaction = getFragmentManager().beginTransaction();
            transaction.add(R.id.contentFragment, myf);
            transaction.commit();
        }
    });

    return view;
}}
以及xml代码:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:layout_marginTop="55dp" xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">

<Button
    android:background="#FFBB00"
    android:layout_width="180dp"
    android:layout_height="wrap_content"
    android:text="MY HEARING"
    android:id="@+id/button8"
    android:layout_gravity="center_horizontal" />
<Button
    android:background="#018AC1"
    android:layout_width="180dp"
    android:layout_height="wrap_content"
    android:text="MY TEAM HEARING"
    android:id="@+id/button7"
    android:layout_gravity="right"
    android:layout_alignParentTop="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true" />
<FrameLayout
    android:id="@+id/contentFragment"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_weight="1"
    android:layout_below="@+id/button8" />

</RelativeLayout>

如果您正在使用带有选项卡的viewpager,请在onCreate()方法中使用下面的行

寻呼机使用中:

public class Pager extends FragmentStatePagerAdapter {

    //integer to count number of tabs
    int tabCount;

    //Constructor to the class 
    public Pager(FragmentManager fm, int tabCount) {
        super(fm);
        //Initializing tab count
        this.tabCount= tabCount;
    }

    //Overriding method getItem
    @Override
    public Fragment getItem(int position) {
        //Returning the current tabs 
        switch (position) {
            case 0:
                Tab1 tab1 = new Tab1(); // first fragment
                return tab1;
            case 1:
                Tab2 tab2 = new Tab2(); // second fragment
                return tab2;
            case 2: 
                Tab3 tab3 = new Tab3(); // third fragment
                return tab3;
            default:
                return null;
        }
    }

    //Overriden method getCount to get the number of tabs 
    @Override
    public int getCount() {
        return tabCount;
    }
}
请尝试以下链接:

如果您未使用viewpager,请使用以下链接:

根据你的密码。我刚刚修改了你的代码。检查这个

public class AddHearingFragment extends Fragment {
Button b1,b2;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    if (container != null) {
        container.removeAllViews();
    }
    View view = inflater.inflate(R.layout.hearing,
            container, false);
b1=(Button) view.findViewById(R.id.button8);
    b2=(Button) view.findViewById(R.id.button7);

 Myhearingfrag myf = new Myhearingfrag();

            FragmentTransaction transaction = getFragmentManager().beginTransaction();
            transaction.add(R.id.contentFragment, myf);
            transaction.commit();

    b1.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            Myhearingfrag myf = new Myhearingfrag();

            FragmentTransaction transaction = getFragmentManager().beginTransaction();
            transaction.add(R.id.contentFragment, myf);
            transaction.commit();
        }
    });
    b2.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            Myteamhearingfrag myf = new Myteamhearingfrag();

            FragmentTransaction transaction = getFragmentManager().beginTransaction();
            transaction.add(R.id.contentFragment, myf);
            transaction.commit();
        }
    });

    return view;
}}

如果您使用的是带有选项卡的viewpager,请在onCreate()方法中使用下一行

寻呼机使用中:

public class Pager extends FragmentStatePagerAdapter {

    //integer to count number of tabs
    int tabCount;

    //Constructor to the class 
    public Pager(FragmentManager fm, int tabCount) {
        super(fm);
        //Initializing tab count
        this.tabCount= tabCount;
    }

    //Overriding method getItem
    @Override
    public Fragment getItem(int position) {
        //Returning the current tabs 
        switch (position) {
            case 0:
                Tab1 tab1 = new Tab1(); // first fragment
                return tab1;
            case 1:
                Tab2 tab2 = new Tab2(); // second fragment
                return tab2;
            case 2: 
                Tab3 tab3 = new Tab3(); // third fragment
                return tab3;
            default:
                return null;
        }
    }

    //Overriden method getCount to get the number of tabs 
    @Override
    public int getCount() {
        return tabCount;
    }
}
请尝试以下链接:

如果您未使用viewpager,请使用以下链接:

根据你的密码。我刚刚修改了你的代码。检查这个

public class AddHearingFragment extends Fragment {
Button b1,b2;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    if (container != null) {
        container.removeAllViews();
    }
    View view = inflater.inflate(R.layout.hearing,
            container, false);
b1=(Button) view.findViewById(R.id.button8);
    b2=(Button) view.findViewById(R.id.button7);

 Myhearingfrag myf = new Myhearingfrag();

            FragmentTransaction transaction = getFragmentManager().beginTransaction();
            transaction.add(R.id.contentFragment, myf);
            transaction.commit();

    b1.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            Myhearingfrag myf = new Myhearingfrag();

            FragmentTransaction transaction = getFragmentManager().beginTransaction();
            transaction.add(R.id.contentFragment, myf);
            transaction.commit();
        }
    });
    b2.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            Myteamhearingfrag myf = new Myteamhearingfrag();

            FragmentTransaction transaction = getFragmentManager().beginTransaction();
            transaction.add(R.id.contentFragment, myf);
            transaction.commit();
        }
    });

    return view;
}}

您可以将一个片段作为默认视图。。 步骤:

  • 采用xml格式的框架布局并为其提供id
  • 创建一个Fragment类,并在oncreate中膨胀它的视图
  • 在Activity onCreate()中,创建片段类的实例
  • 之后,创建Fragmentmanager和FragmentTransaction的实例
  • 使用FragmentTransaction实例添加第一个片段并提交它

您可以将一个片段作为默认视图。。 步骤:

  • 采用xml格式的框架布局并为其提供id
  • 创建一个Fragment类,并在oncreate中膨胀它的视图
  • 在Activity onCreate()中,创建片段类的实例
  • 之后,创建Fragmentmanager和FragmentTransaction的实例
  • 使用FragmentTransaction实例添加第一个片段并提交它


我只是在框架布局中使用了两个按钮,因此请建议我如何在用户单击这两个按钮之前添加xml视图作为默认值,然后在clickMY Hearning和MY TEAM Hearning都是按钮或选项卡上运行?在oncreate()中调用您的片段“主活动的名称。@Annie使用以下代码Myhearingfrag myf=new Myhearingfrag();FragmentTransaction=getFragmentManager().beginTransaction();事务.add(R.id.contentFragment,myf);commit();在这些线下视图=充气机。充气(R.布局。听力,容器,错误);b1=(按钮)视图.findViewById(R.id.button8);b2=(按钮)视图.findViewById(R.id.button7);我的主要活动是一个导航抽屉,那么在那个抽屉中使用这段代码可以吗?我只是使用两个框架布局的按钮,因此,请建议我如何在用户单击这两个按钮之前将xml视图添加为默认视图,然后在“单击我的听力”和“我的团队听力”按钮或选项卡上进行操作?在MainActivity的oncreate()中调用您的片段。@Annie使用以下代码Myhearingfrag myf=new Myhearingfrag();FragmentTransaction=getFragmentManager().beginTransaction();事务.add(R.id.contentFragment,myf);commit();在这些线下视图=充气机。充气(R.布局。听力,容器,错误);b1=(按钮)视图.findViewById(R.id.button8);b2=(按钮)视图.findViewById(R.id.button7);我的主要活动是一个导航抽屉,所以在那个抽屉中使用这段代码可以吗?试试我的答案@anniety My answer@anniew我在哪里添加这段代码??如我的问题所示,是新片段还是旧的主片段?您必须使用活动布局中的两个按钮创建布局。i、 e我的听证会和我的团队听证会。在您的活动onCreate()中你需要添加上面的行。然后当你打开屏幕时,你的“我的听力片段”就会显示。单击“我的团队治疗”按钮时,只需在相应按钮的onclickListner中添加相同的行。但是,除了添加之外,你还需要添加替换。谢谢,这是一个很好的方法,但我已经找到了另一个答案,我在哪里添加此代码??如我的问题所示,是新片段还是旧的主片段?您必须使用活动布局中的两个按钮创建布局。i、 e我的听证会和我的团队听证会。在您的活动onCreate()中,您需要添加上述行。然后,当您打开该屏幕时,我的听力片段就会显示。单击“我的团队治疗”按钮时,只需在相应按钮的onclickListner中添加相同的行。但是,除了添加之外,您还需要添加替换。谢谢,这是一个不错的方法,但我已经找到了另一个答案