我要求弹出警告对话框,就像EULA屏幕一样。 其中将有一个描述EULA的文本,带有一个复选框“不再显示此内容”,最后两个按钮用于确定和取消。
如何将textview和checkbox作为警告对话框的一部分?
答案 0 :(得分:16)
我必须同意Mudassir,EULA不应该有“不再显示”复选框,但是这里你可以做些类似的事情。
您可以使用AlertDialog.Builder构建一个包含视图的对话框(可以用XML设计)。这是一个例子
AlertDialog.Builder eulaBuilder = new AlertDialog.Builder(this);
LayoutInflater eulaInflater = LayoutInflater.from(this);
View eulaLayout = eulaInflater.inflate(R.layout.eula, null);
eulaBuilder.setView(eulaLayout);
Checkbox dontShowAgain = (CheckBox)eulaLayout.findViewById(R.id.dontShowAgain);
eulaBuilder.setPositiveButton("Agree", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface d, int m) {
// Do something
}
});
eulaBuilder.setNegativeButton("Disagree", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface d, int m) {
// Do something
}
});
eulaMsg = eulaBuilder.create();
您可以做的是使用单个对象CheckBox创建XML。然后将视图添加到AlertDialog.Builder中。使用AlertDialog.Builder.setMessage(此处为“EULA message”)来设置您的EULA消息。
答案 1 :(得分:3)
看看这两种不同的方法:
1)第一种方法更简单,更快速:
CheckBox checkBox = new CheckBox(this);
checkBox.setText("This is your checkbox message");
LinearLayout linearLayout = new LinearLayout(this);
linearLayout.setLayoutParams( new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT,
LinearLayout.LayoutParams.FILL_PARENT));
linearLayout.setOrientation(1);
linearLayout.addView(checkBox);
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);
alertDialogBuilder.setView(linearLayout);
alertDialogBuilder.setTitle("This is the title of alert dialog");
alertDialogBuilder.setMessage("This is the message of alert dialog");
alertDialogBuilder.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
// do something
}
});
alertDialogBuilder.show();
2)第二种方法,采用更加自定义的布局:
看这个page,还有用于创建复选框的XML代码。