如何将数据传递到BottomSheetDialogFragment?

时间:2019-06-11 15:04:32

标签: java android android-recyclerview recycler-adapter

我有一个BottomSheetDialogFragment类。看起来像这样:

public class BottomSheetAddProp extends BottomSheetDialogFragment

它具有一种方法:

@Override
public View onCreateView

在这种方法中,我使用RecycleAdapter为照片创建一个RecyclerView。

        recyclerPhotos = v.findViewById(R.id.recyclerPhotos);
        recyclerPhotos.setHasFixedSize(true);
        layoutManagerPhotos = new LinearLayoutManager(context, LinearLayoutManager.HORIZONTAL, false);
        recyclerAdapterPhotos = new AdapterPhotos(selectedPhotos, getActivity());
        recyclerPhotos.setLayoutManager(layoutManagerPhotos);
        recyclerPhotos.setAdapter(recyclerAdapterPhotos);

有关所选照片的​​数据属于onActivityResult方法,我必须执行recyclerAdapterPhotos.notifyDataSetChanged()才能更新RecyclerView List。但是在活动中,我没有这个recyclerAdapterPhotos,因为它是在BottomSheetAddProp内部创建的。

我的问题是-如何在.notifyDataSetChanged()内制作onActivityResult()

1 个答案:

答案 0 :(得分:1)

在对话框片段中添加一个方法:

public void updatedData(Data data) {
    adapter.setData(data);
}

保留对活动中片段的引用。然后在onActivityResult方法中,只需通过上述方法传递数据即可:

void onActivityResult(int requestCode, int resultCode, Intent data) {
    Data data = ...
    dialogFragment.updateDate(data);
}