我有三个片段和一个活动。 我已将两个片段并排放在活动中,我想点击第一个片段,将其更改为第三个片段。
活动:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:baselineAligned="false"
android:orientation="horizontal"
android:id="@+id/parent">
<fragment
android:id="@+id/mainPage"
android:layout_width="0dp"
android:layout_weight="0.7"
android:layout_height="wrap_content"
class="com.example.user1.lotus.MainMenu" >
</fragment>
<fragment
android:id="@+id/side_bar"
android:layout_width="0dp"
android:layout_weight="0.3"
android:layout_height="wrap_content"
class="com.example.user1.lotus.SideBar" >
</fragment>
</LinearLayout>
现在我想改变class="com.example.user1.lotus.MainMenu"
通过我的活动class="com.example.user1.lotus.Starter"
这可能吗?
活动
public void onFragmentInteraction(String s){
switch (s){
case "menu":
break;
case "starters":
break;
case "mainDish":
MainDish newFragment = new MainDish();
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.replace(R.id.mainPage, newFragment);
transaction.addToBackStack(null);
transaction.commit();
并在片段中
btnMainDish.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
mListener.onFragmentInteraction("mainDish");
}
});
答案 0 :(得分:1)
只需在按钮的onClick侦听器方法中执行此操作,您的片段将被第三个片段替换:
ThirdFragment newFragment = new ThirdFragment();
FragmentTransaction transaction = getFragmentManager().beginTransaction();
// Replace whatever is in the fragment_container view with this fragment,
// and add the transaction to the back stack if needed
transaction.replace(R.id.layout_replace, newFragment);
transaction.addToBackStack(null);
// Commit the transaction
transaction.commit();
希望这有帮助。