Android fragments 如何通过数据绑定从片段访问活动视图?

Android fragments 如何通过数据绑定从片段访问活动视图?,android-fragments,android-activity,data-binding,Android Fragments,Android Activity,Data Binding,我的目标是从片段访问MainActivity的ProgressBar和TextView。但是,我得到的错误如下: 尝试调用虚拟方法“void” 空对象上的android.widget.ProgressBar.setVisibility(int)“” 参考文献 activity_main.xml <LinearLayout android:layout_width="match_parent" android:layout_height="wr

我的目标是从片段访问MainActivity的ProgressBar和TextView。但是,我得到的错误如下:

尝试调用虚拟方法“void” 空对象上的android.widget.ProgressBar.setVisibility(int)“” 参考文献

activity_main.xml

<LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="200dp"
            android:orientation="vertical"
            android:layout_gravity="center">

        <ProgressBar
            android:id="@+id/pbLoading"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:indeterminate="true"
            android:layout_gravity="center"
            android:visibility="visible"/>

        <TextView
            android:id="@+id/tvLoading"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginTop="@dimen/dimension_8dp"
            android:fontFamily="@font/robotomedium"
            android:textSize="16sp"
            android:visibility="visible"
            android:text="@string/loading_text"/>

        </LinearLayout>
篡改了许多帖子、文章,但无法实现。提前谢谢

最好的

选择1

使progressbar在活动上保持静态 然后从片段访问,如-

if(MainActivity.progressbar!=null){
MainActivity.progressbar.setVisibility(View.Gone);
//or whatever do you want
} 
选择2


这确实是一个糟糕的方法。OOP在哪里?然后使用事件总线。这是发布者-订阅者模式或请参阅更新的答案
if(MainActivity.progressbar!=null){
MainActivity.progressbar.setVisibility(View.Gone);
//or whatever do you want
} 
((YourActivityClassName)getActivity()).yourPublicMethod();