我如何从 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();
我通过以下方式创建了自定义警报对话框
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();