2014-02-28 100 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