0
私の目的は、MainActivityのProgressBarとTextViewにFragmentからアクセスすることです。しかし、私は以下のエラーが取得しています: 参照nullオブジェクト上で '無効 android.widget.ProgressBar.setVisibility(int型)' 仮想メソッドを呼び出すためにFragmentからDataBindingまでのアクティビティビューにアクセスするには?
試みを
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>
SampleFragment.java
@Override
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
fragmentDataBinding = DataBindingUtil.inflate(inflater, R.layout.fragment_currency_list, container, false);
return Objects.requireNonNull(fragmentDataBinding).getRoot();
}
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
mPbLoading = fragmentDataBinding.getRoot().findViewById(R.id.pbLoading);
mPbLoading.setVisibility(View.GONE);
}
多くの投稿、記事で改ざんされましたが、達成できませんでした。前もって感謝します。
活性に静的最高
これは本当に悪いアプローチです。 OOPはどこですか? – nuhkoca
イベントバスを使用します。パブリッシャーの購読者パターンまたは更新された回答を表示する –