简体   繁体   English

在 BottomNavigation 的片段中查看 pager2

[英]View pager2 in Fragment of BottomNavigation

I have 2 Fragment,Frag1 and Frag2 in Bottom navigation and in Frag1 I have implemented retrofit through viewmodel(MVVM) and when I try to send query by buttons in viewpager2 to frag1..getactivity is null..also attach detach do not work.我在底部导航中有 2 个 Fragment,Frag1 和 Frag2,在 Frag1 中,我通过 viewmodel(MVVM) 实现了 retrofit,当我尝试通过 viewpager2 中的按钮将查询发送到 frag1..getactivity 是 null..也附加分离不起作用。

Please suggest some ways.请提出一些方法。

Implement fragments like this in your activity_main.xml layout:在你的 activity_main.xml 布局中实现这样的片段:

<fragment
            android:id="@+id/frag1"
            android:name="com.example.app.Frag1"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            tools:layout="@layout/frag1" />
<fragment
            android:id="@+id/frag2"
            android:name="com.example.app.Frag2"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            tools:layout="@layout/frag2" />

Now in your MainActivity.java file:现在在您的 MainActivity.java 文件中:

FragmentManager manager;
Frag1 frag1;
Frag2 frag2;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    manager = getSupportFragmentManager();

    frag1 = (Frag1) manager.findFragmentById(R.id.frag1);
    frag2 = (Frag1) manager.findFragmentById(R.id.frag2);
}

public void sendToFrag1(Object data){
    frag1.reciveDataHere(data);
}

In your fragment Frag1.java:在您的片段 Frag1.java 中:

public void recieveDataHere(Object data){
    //you get data here
}

To send the Data:要发送数据:

((MainActivity) getActivity()).sendToFrag1(data);

or ((MainActivity) getContext()).sendToFrag1(data);或 ((MainActivity) getContext()).sendToFrag1(data);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM