Android 将数据从DialogFragment传递到ListFragment中的ArrayAdapter

Android 将数据从DialogFragment传递到ListFragment中的ArrayAdapter,android,android-listfragment,android-dialogfragment,Android,Android Listfragment,Android Dialogfragment,我有一个ListFragment,其中每行都有一个按钮,点击后会打开dialogFragment,用户可以在其中选择10个选项中的1个(这是一个包含10个选项的listView)。 我想在SQLite数据库中保存此选项(已经完成),并在dialogFragment消失后立即在ListFragment的特定列表行中反映此选项。怎么做 我读了那篇文章:…/basics/fr../communication.html 但我不知道如何在我的案例中实现这个想法,因为在我的案例中,它是两个片段之间的通信,是

我有一个ListFragment,其中每行都有一个按钮,点击后会打开dialogFragment,用户可以在其中选择10个选项中的1个(这是一个包含10个选项的listView)。 我想在SQLite数据库中保存此选项(已经完成),并在dialogFragment消失后立即在ListFragment的特定列表行中反映此选项。怎么做

我读了那篇文章:…/basics/fr../communication.html 但我不知道如何在我的案例中实现这个想法,因为在我的案例中,它是两个片段之间的通信,是一种交流活动


假设您显示的是ListFragment中的对话框,您希望在用户单击OK时获得回调。在对话框中创建一个接口,该片段可以实现,然后在用户单击OK时调用它

public class ConfirmDialog extends DialogFragment implements Dialog.OnClickListener {

public interface OnItemSelectedListener {
    void onItemSelected(final int itemId);
}

private OnItemSelectedListener mListener;

public ConfirmDialog() {
    //Empty constructor
}

@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
    //Do your setup here.
    return new AlertDialog.Builder(getActivity())
            .setTitle("MyTitle")
            .setMessage("Pick one")
            .setPositiveButton(R.string.ok, this)
            .setNegativeButton(R.string.cancel, this)
            .setView(R.layout.my_list_view)
            .create();
}

public void setOnItemSelectedListener(final OnItemSelectedListener listener) {
    mListener = listener;
}

@Override
public void onClick(DialogInterface dialog, int which) {
    if (mListener != null && which == Dialog.BUTTON_POSITIVE) {
        mListener.onItemSelected(/*Get the currently selected item from your listview*/0);
    }
}
这将把信息传递回ListFragment,在那里您可以更新SQL并刷新列表以反映所做的更改


更新数据库后,需要更新列表适配器正在查看的列表,很可能是重新查询。然后您需要调用适配器,它应该会刷新

谢谢你Glurt-另外,你知道在收到数据后如何刷新列表吗?好的,谢谢你的解决方案,它很好,但在我尝试使用之前library@LynxOtto也是传递信息的好方法,但是如果你只在一个地方使用它,那就有点过头了。如果您在itI上需要任何帮助,请告诉我成功实现了Otto,但它确实降低了应用程序的性能。谢谢您的回答,我也有同样的问题,我应该在哪里调用
setOnItemSelectedListener
?!