片段在android中调用

时间:2013-12-22 07:00:53

标签: android android-fragments android-fragmentactivity

enter image description here enter image description here我在项目中有以下内容

1> Action Bar(Home Fragment)的片段活动

2 - ;标签片段

2.1>标签1片段

2.2>标签2片段

3>其他片段

在Fragment Activity中,调用Tab Fragment,它显示了最初加载片段活动时的2个选项卡。

标签1片段包含一些带按钮的字段

Tab 2 Fragment包含一些带按钮的字段

当我点击Tab 1 Fragment按钮时,我想显示

  
    
      

主要xml中存在的FrameLayout中的其他片段

             

隐藏TabFragment与标签片段中显示的标签1和标签2片段完全相同

    
  

        android:id="@+id/mainframlayout"

        android:layout_width="match_parent"

        android:layout_height="0dip"

        android:layout_weight="1" />

当我在Tab1片段中单击按钮时编写此代码时,它会删除Tab1片段

getActivity().getSupportFragmentManager().beginTransaction().remove(this).commit();

但我想删除总Tab片段并加载其他片段在该帧布局中请帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

您应该将TabFragment的引用传递给Tab1Fragment并为其调用remove片段。

getActivity().getSupportFragmentManager().beginTransaction().remove(parentFragment).commit();

您可以在创建tab 1片段的新实例时执行此操作,只需传递TabFragment参考。

onCreateView的飞行片段,您将在其中创建OneWay,TwoWay片段:

OneWayFragment oneWay=new OneWayFragment();
oneWay.setFlightFragment(FlightFragment.this);

在OneWayFragment中:

class OneWayFragment extends Fragment {
    FlightFragment f;
    public void setFlightFragment(FlightFragment f){
    this.f=f;
    }

    //onClick of button
     Intent intent=new Intent(getActivity(),FlightLoadingFragmentActivity.class); 
     getActivity().startActivity(intent);

}

修改

class OneWayFragment extends Fragment {
    //onClick of button
     Intent intent=new Intent(getActivity(),FlightLoadingFragmentActivity.class); 
     getActivity().startActivity(intent);

}

您可以创建一个名为FlightLoadingFragmentActivity的新活动,并将片段放入其布局