我有一个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()
?
答案 0 :(得分:1)
在对话框片段中添加一个方法:
public void updatedData(Data data) {
adapter.setData(data);
}
保留对活动中片段的引用。然后在onActivityResult方法中,只需通过上述方法传递数据即可:
void onActivityResult(int requestCode, int resultCode, Intent data) {
Data data = ...
dialogFragment.updateDate(data);
}