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接受。这有助于其他面临同样问题的人