Java 如何从android的自定义对话框中的视图字段中获取数据

Java 如何从android的自定义对话框中的视图字段中获取数据,java,android,modal-dialog,android-alertdialog,Java,Android,Modal Dialog,Android Alertdialog,我用以下方法创建了一个自定义警报对话框 public class CustomDialogBoxForNewEmploy extends Dialog implements android.view.View.OnClickListener { Button ok , cancel; String name = "" , id = ""; public CustomDialogBoxForNewEmploy(@NonNull C

我用以下方法创建了一个自定义警报对话框

public class CustomDialogBoxForNewEmploy extends Dialog implements android.view.View.OnClickListener {

    Button ok , cancel;
    String name = "" , id = "";

    public CustomDialogBoxForNewEmploy(@NonNull Context context) {
        super(context);
    }

    @Override
    public void onClick(View view) {
        if(view.getId() == R.id.okButton){
            name = ((EditText)findViewById(R.id.employName)).getText().toString();
            id = ((EditText)findViewById(R.id.employId)).getText().toString();
        }else{

        }
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.custom_dialog_new_employ);

        ok = findViewById(R.id.okButton);
        cancel = findViewById(R.id.cencelButton);
        ok.setOnClickListener(this);
        cancel.setOnClickListener(this);
    }
}
当一个按钮被点击时,我就给它打电话

private void registerNewEmploy(View view){
    CustomDialogBoxForNewEmploy temp = new CustomDialogBoxForNewEmploy(getContext());
    temp.show();

}
但是现在我怎么才能得到两个文本视图中的数据呢 如果我写 字符串x=临时id;它将是空的


我怎样才能做到这一点?

您需要一个接口。创建一个如下所示的界面

interface DialogEventListener {
    onSubmit(String id, String name);
}
然后,您必须在显示此对话框的活动或片段中实现此接口

您可以在CustomDialogBoxForNewEmploy中将此接口作为参数传递。 因此,您的新构造函数将如下所示

private DialogEventListener listener;
public CustomDialogBoxForNewEmploy(@NonNull Context context, DialogEventListener listener) {
        super(context);
        this.listener = listener
        }

在对话框的onCLick方法中,您可以调用此接口方法,然后添加到自定义对话框

公共字符串getName(){
返回名称;
}
公共字符串getId(){
返回id;
}
在另一节课上

CustomDialogBoxForNewEmploy temp=newcustomdialogboxfornewemploy(getContext());
temp.show();
字符串输出=temp.getName();

Soo。。你想从dialog类中获取字符串数据还是在dialog类中使用?从类中获取,但我现在使用接口回调完成了。谢谢,我完成了,祝你愉快dude@TehleelMir如果答案解决了你的问题,就接受它problem@TehleelMirStackOverflow不是这样工作的。我告诉你们投票的原因是,其他人都认为问题已经得到了回答,正确的答案已经解决了问题,并且被OP接受。这有助于其他面临同样问题的人