如何从对话框类值传递给它的主机
问题描述:
所以这是我的对话框类:如何从对话框类值传递给它的主机
public class SecondActivity extends DialogFragment {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
LayoutInflater inflater = getActivity().getLayoutInflater();
builder.setView(inflater.inflate(R.layout.second, null))
.setPositiveButton("Save", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dismiss();
}
});
return builder.create();
}
}
在我的对话有哪些得到2串2个编辑文本。如果用户按下保存按钮,我想在MainActivity中使用这两个字符串。我怎么做?
答
的充气方法返回一个视图,您可以执行findViewById,如下所示:
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
LayoutInflater inflater = getActivity().getLayoutInflater();
View v = inflater.inflate(R.layout.second, null);
EditView editView = (EditView)v.findById(R.id.your_edit_view);
builder.setView(v)
.setPositiveButton("Save", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dismiss();
}
});
return builder.create();
}
使用getActivity()返回什么您的主机活动实例。如果在MainActivity中有一个方法setString1(...),可能((MainActivity)getActivity())。setString1(“text”)。 –
这可能有所帮助:https://developer.android.com/guide/topics/ui/dialogs.html#PassingEvents –