屏幕变暗但对话框不显示

The screen dims but the dialog doesn't show up

我使用适配器在 片段 中创建了一个列表。单击列表中的每个项目时,我想显示一个不同的对话框。我已将侦听器添加到列表项,并为其中一项(第二项)出现的对话框编写了代码。但是,当我单击该项目时,phone 屏幕会变暗,但不会显示对话框。我在下面添加了相关代码。我在互联网上搜索了很多关于这个问题的信息,并且自己尝试了很多不同的方法,但似乎没有任何效果。 应用程序中的其他一切正常。

我们将不胜感激任何形式的帮助。 提前致谢!

DialogFragment Class:

public class GenreDialogFragment extends DialogFragment{
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
    AlertDialog dialog = builder.create();
    builder.setTitle(R.string.title_genre_dialog);
    builder.setMessage("Are you sure?");
    builder.setPositiveButton("OK",  new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            // on success
        }
    });
    builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            dialog.dismiss();
        }
    });

    return dialog;
}
}

我希望在其中显示对话框的父片段 Class:

public class FragmentAddWatchedMovie extends ListFragment{
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);
    SetListAdapter();
    SetClickListener();

}
private void SetClickListener() {
    ListView listView = (ListView) getView().findViewById(android.R.id.list);

    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            switch (position){
                case 0:{
                    FragmentManager manager = getFragmentManager();
                    GenreDialogFragment fragment = new GenreDialogFragment();
                    fragment.setTargetFragment(FragmentAddWatchedMovie.this,0);
                    fragment.show(manager, "GenreDialog_Fragment");
                    break;

                }
                case 1:{

                }
                case 2:{

                }
                case 3:{

                }
                case 4:{

                }
                case 5:{

                }
            }

        }
    });

}

将以下行:“AlertDialog dialog = builder.create();”移至 Dialog class 中 return 行的正上方。

这对您不起作用,因为您在对构建器设置首选项之前创建了对话框 :)