2014-02-28 99 views
-1

我需要显示AlertDialog并显示“不再显示”复选框。我搜索,但我无法找到一个有效的解决方案:/带复选框的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(); 
+1

你想干什么? – JoelFernandes

+2

你的概率是什么;时间和错误? – rajshree

+0

有一个关闭按钮。我想在复选框中不要再显示 – drozdzynski

回答

1

如果我没看错,然后只是做一个类查看延伸。

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()方法的防溅活动..

 DialogShow d = new Dialog(this); 
+0

为什么在这个世界上你会将一个对话视为一个视图?这很混乱。这对这个人正在尝试做的事情来说太过分了。 – JoxTraex

0

通过您欣赏到setView()方法,它会将您的视图设置对话框身体。

alertDialogBuilder.setView(your_view); 
1

你可以尝试一下本作AlertDialog:

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

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

Dialog d = builder.create(); 

编辑:请看看HERE FOR DETAILS EXPLANATION

+0

给我实例布局 – drozdzynski

+0

只有在代码中包含'myDialogLayout'示例时,此解决方案才会起作用。 – rupinderjeet

+0

@rupinderjeet同意了!请提供示例以帮助其他人 – nitesh