Java 带有复选框的Alertdialog(不再显示)
我需要显示带有“不再显示”复选框的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
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();