Java 在AlertDialog中显示自定义视图
我有一个扩展LinearLayout的类。它只包含两个编辑框。单击某个按钮,我想在警报对话框中加载这个类。当我单击按钮时,会显示警报对话框,但不会显示扩展LinearLayout的视图类。代码如下。我被绊住了。我能得到一些解决方案吗Java 在AlertDialog中显示自定义视图,java,android,android-alertdialog,android-custom-view,Java,Android,Android Alertdialog,Android Custom View,我有一个扩展LinearLayout的类。它只包含两个编辑框。单击某个按钮,我想在警报对话框中加载这个类。当我单击按钮时,会显示警报对话框,但不会显示扩展LinearLayout的视图类。代码如下。我被绊住了。我能得到一些解决方案吗 public class StudentDialog extends LinearLayout { Context context; LinearLayout layout; public StudentDialog(Context con
public class StudentDialog extends LinearLayout {
Context context;
LinearLayout layout;
public StudentDialog(Context context) {
super(context);
this.context = context;
createStudentDialog();
}
private void createStudentDialog() {
layout = new LinearLayout(context);
layout.setOrientation(LinearLayout.VERTICAL);
layout.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,
LayoutParams.MATCH_PARENT));
layout.setPadding(10, 10, 10, 10);
layout.setId(200);
EditText studentName = new EditText(context);
studentName.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT));
studentName
.setTextAppearance(getContext(), TEXT_DIRECTION_FIRST_STRONG);
EditText address = new EditText(context);
address.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT));
address.setTextAppearance(getContext(), TEXT_DIRECTION_FIRST_STRONG);
layout.addView(studentName);
layout.addView(address);
}
}
//Now i am calling this on some button click listener as follows. The alert dialog is displayed but not the StudentDialog.
StudentDialog dialog = new StudentDialog(this);
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);
alertDialogBuilder.setView(dialog);
AlertDialog alertDialog = alertDialogBuilder.create();
alertDialog.show();
是否希望在警报视图中显示两个编辑文本,就像带有按钮的登录对话框一样,如果是,则只创建一个要在对话框视图中显示的布局。创建一个扩展对话框的类,并在该类的一次创建的setContentView中设置该布局
alertDialogBuilder.setView(dialog);
作为
或者,您可以从StudentDialog类中删除“layout”变量,因为它已经是一个LinearLayout。您可以从createStudentDialog函数内部将视图添加到“this”。然后它就会像预期的那样工作。您在原始代码中所做的是将EditText添加到一个布局中,并将另一个布局添加到AlertDialog中。请按照此操作,您有一个扩展对话框而不是视图,只需创建该类的对象,并且您可以使用“显示为对话框查看”。
alertDialogBuilder.setView(dialog.layout);