Android fragments 如何通过数据绑定从片段访问活动视图?
我的目标是从片段访问MainActivity的ProgressBar和TextView。但是,我得到的错误如下: 尝试调用虚拟方法“void” 空对象上的android.widget.ProgressBar.setVisibility(int)“” 参考文献 activity_main.xmlAndroid 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
<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();