两个按钮显示两个片段

时间:2015-03-05 21:39:06

标签: android

我正在为同一项活动设置2个按钮。默认情况下,显示按钮1的内容。当单击按钮2时,按钮1片段被按钮2片段替换。但是,我在运行代码时遇到问题,我的应用程序总是崩溃,我不明白为什么。请帮忙......

在我的主要活动的xml中,我有2个按钮,两个都有onclick到" selectFrag。我有一个低于他们。请注意,我已将Fragment1指定为默认片段。

<Button
    android:id="@+id/tab1"
    android:onClick="selectFrag"/>

<Button
    android:id="@+id/tab2"
    android:onClick="selectFrag"/>

<fragment
    android:name="com.example.toshiba.weehaufyp.Fragment1"
    android:id="@+id/fragment_place"
    tools:layout="@layout/fragment_1"/>

在我的主要活动中,

tab1 = (Button)findViewById(R.id.tab1);
tab2 = (Button)findViewById(R.id.tab2);

public void selectFrag(View view){
    Fragment fr;

    if(view == findViewById(R.id.tab2)){
        fr = new Fragment2();
    }
    else{
        fr = new Fragment1();
    }

....
....

    FragmentManager fm = getFragmentManager();
    FragmentTransaction fragmentTransaction = fm.beginTransaction();
    fragmentTransaction.replace(R.id.fragment_place, fr);
    fragmentTransaction.commit();

}

在我的2片中&#39;个XML,

<LinearLayout ... ...>
    <TextView
     ... .../>
</LinearLayout>

我没有触及2个片段的java。他们有默认代码。如

private static final String ARG_PARAM1 = "param1";
private static final String ARG_PARAM2 = "param2";

和一些方法,如OnFragmentInteractionListener,onCreate,onCreateView,onAttach,onDetach,所有这些方法都有默认代码。

1 个答案:

答案 0 :(得分:0)

您已在XML布局中硬定义了一个片段。无法替换或删除XML布局中定义的片段。因此,您收到此错误。删除XML中的声明,而是在代码中以编程方式添加Fragment1(在onCreate()方法中)。