Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/205.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 带有复选框的Alertdialog(不再显示)_Java_Android_Checkbox_Dialog - Fatal编程技术网

Java 带有复选框的Alertdialog(不再显示)

Java 带有复选框的Alertdialog(不再显示),java,android,checkbox,dialog,Java,Android,Checkbox,Dialog,我需要显示带有“不再显示”复选框的AlertDialog。我搜索了,但找不到有效的解决方案:/ final AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this); PackageManager pk = getPackageManager(); Drawable icon; alertDialogBuilder .setTitle(R.string.confirm) .setPositive

我需要显示带有“不再显示”复选框的AlertDialog。我搜索了,但找不到有效的解决方案:/

final AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);
PackageManager pk = getPackageManager();
Drawable icon;

alertDialogBuilder
    .setTitle(R.string.confirm)
    .setPositiveButton(R.string.close, new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog,int id) {
            //Do something
        }
    });

AlertDialog alertDialog = alertDialogBuilder.create();
alertDialog.show();

如果我没有错,那么只需使用视图扩展一个类即可

public class DialogShow extends View {
SharedPreferences dialogPreferences;
String prefrencestring;
CheckBox nevershowagain;
Button closedialog;
Dialog dialog;
View view;

public DialogShow(final Context context) {
    super(context);
    dialog = new Dialog(context);
    view = View.inflate(context, R.layout.startdialog, null);
    dialog.setContentView(view);
    nevershowagain = (CheckBox) view.findViewById(R.id.nevershowagain);
    closedialog = (Button) view.findViewById(R.id.closedialog);

    closedialog.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

            if (nevershowagain.isChecked()) {
                prefrencestring = "1";

                dialogPreferences = PreferenceManager
                        .getDefaultSharedPreferences(context);
                Editor editprefrences = dialogPreferences.edit();
                editprefrences.putString("showdialog", prefrencestring);
                editprefrences.commit();
            }

            dialog.dismiss();
        }
    });

    dialogPreferences = PreferenceManager
            .getDefaultSharedPreferences(context);
    String check = dialogPreferences.getString("showdialog", "");
    if (check.equals("1")) {
    } else {
        dialog.show();
    }
}
}

现在在onCreate()方法的启动活动中调用这个类


将视图传递给
setView()
方法,它会将视图设置为对话框主体

alertDialogBuilder.setView(your_view);

您可以为AlertDialog尝试以下操作:

AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
LayoutInflater inflater = getActivity().getLayoutInflater();

builder.setView(inflater.inflate(R.layout.myDialogLayout, null));

Dialog d = builder.create();

编辑:请调查你的问题是什么;em和错误???有一个按钮要关闭。我想在其中选中“不再次显示”复选框Instandard dialog show everytime on run应用程序如果有人选中该复选框并单击“关闭对话框”“不再次显示”请查看此示例布局在代码中包含
myDialogLayout
的示例之前,此解决方案将不起作用。@rupinderjeet Yes agreed!。请举个例子来帮助其他人,这是一个很好的例子。我无法编辑您的答案。太好了。谢谢。我会在我的答案中添加相同的参考资料。:-)你到底为什么把对话称为视图?那太令人困惑了。这家伙想做的事太过分了。
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
LayoutInflater inflater = getActivity().getLayoutInflater();

builder.setView(inflater.inflate(R.layout.myDialogLayout, null));

Dialog d = builder.create();