我正在为同一项活动设置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,所有这些方法都有默认代码。
答案 0 :(得分:0)
您已在XML布局中硬定义了一个片段。无法替换或删除XML布局中定义的片段。因此,您收到此错误。删除XML中的声明,而是在代码中以编程方式添加Fragment1(在onCreate()方法中)。