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

How can i get the data from view fields which are in custom dialog box in android

我通过以下方式创建了自定义警报对话框

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 = temp.id;它将是空的

我该怎么做?

你需要一个接口。创建一个界面如下

interface DialogEventListener {
    onSubmit(String id, String name);
}

然后您必须在显示此对话框的 Activity 或片段中实现此接口。

您可以将此接口作为参数传递给 CustomDialogBoxForNewEmploy。 所以你的新构造函数看起来像这样

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

从dialog的onCLick方法,可以调用这个接口方法

下一步添加到自定义对话框

public String getName(){
  return name;
}

public String getId(){
  return id;
}

在另一个 class

CustomDialogBoxForNewEmploy temp = new CustomDialogBoxForNewEmploy(getContext());
temp.show();

String output = temp.getName();