亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何切換到另一個活動以及更改該活動中的片段?

如何切換到另一個活動以及更改該活動中的片段?

慕妹3146593 2022-11-02 17:19:42
我有一個帶有 3 個不同 Fragment 的 main_activity 和一個SlideActivity. 我可以在我的MainActivity.現在我在 中添加 1 個按鈕,MainActivity它將打開SlideActivity. 在SlideActivity導航欄中,有 3 個按鈕可以切換到我已經創建的每個不同的片段。問題是當我單擊導航中的列表按鈕時,出現錯誤表明未找到片段 fragment_main{e1acaf7 #0 id=0x7f080052} 的 id 0x7f080052 (com.example.learnfragment:id/fragment_container) 的視圖似乎它無法找到FrameLayoutIDR.id.并且我相信因為導航按鈕在 中SlideActivity并且它找不到在MainActivity.但是我應該怎么做才能切換回MainActivity以及更改不同的片段?這是navigation_slide_activity.xml<include    layout="@layout/app_bar_slide"    android:layout_width="match_parent"    android:layout_height="match_parent" /><android.support.design.widget.NavigationView    android:id="@+id/nav_view"    android:layout_width="wrap_content"    android:layout_height="match_parent"    android:layout_gravity="start"    android:fitsSystemWindows="true"    app:headerLayout="@layout/nav_header_slide"    app:menu="@menu/activity_slide_drawer" />Navigation_Slide_Activity.java:_public boolean onNavigationItemSelected(MenuItem item) {    // Handle navigation view item clicks here.    int id = item.getItemId();    if (id == R.id.nav_home) {        // Navigate back to the Main Fragment        FragmentTransaction ft = getSupportFragmentManager().beginTransaction();        ft.replace(R.id.fragment_container, new fragment_main());        ft.commit();    }}和main_activity.xml:<FrameLayout    android:id="@+id/fragment_container"    android:layout_width="392dp"    android:layout_height="496dp"    android:layout_marginStart="8dp"    android:layout_marginTop="8dp" />最后,MainActivity.javaprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    // Create Fragment    if(savedInstanceState == null){        getSupportFragmentManager().beginTransaction().add(                R.id.fragment_container,                new fragment_main()).commit();    }}
查看完整描述

1 回答

?
慕森王

TA貢獻1777條經驗 獲得超3個贊

public static在你的MainActivity.


public static int FRAGMENT_TO_BE_LOADED = 0;

現在從 中SlideActivity,將變量設置為一個數字(例如 3,即當您返回到您的MainActivity.


public boolean onNavigationItemSelected(MenuItem item) {

    // Handle navigation view item clicks here.

    int id = item.getItemId();


    if (id == R.id.nav_home) {

        MainActivity.FRAGMENT_TO_BE_LOADED = 3; 

        finish();

    }

}

現在在你的 中MainActivity,你需要有一個onResume函數來檢查變量并相應地加載片段。


@Override

protected void onResume() {

    super.onResume();


    if(FRAGMENT_TO_BE_LOADED == 1) loadFragment1();

    else if(FRAGMENT_TO_BE_LOADED == 2) loadFragment2();

    else if(FRAGMENT_TO_BE_LOADED == 3) loadFragment3();

}

希望能解決您的問題。


查看完整回答
反對 回復 2022-11-02
  • 1 回答
  • 0 關注
  • 150 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號