我有一个从 DialogFragment 派生的自定义对话框。
当用户单击“确定”按钮时,我需要保存屏幕上的信息。
所以我让我的 PositiveButton 调用关闭,我实现了 onDismiss 方法来保存数据。
在 onDismiss 方法中,我需要从对话框上的 editView 获取数据。我正在使用getView().findViewByID 来获取editView,但是GetView() 方法返回null。
这是我的代码:
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
LayoutInflater inflater = getActivity().getLayoutInflater();
builder.setView(inflater.inflate(R.layout.dialog_signin, null))
.setPositiveButton(R.string.signin, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
LoginDialogFragment.this.getDialog().dismiss();
}
})
.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
LoginDialogFragment.this.getDialog().cancel();
}
});
return builder.create();
}
@override
public void onDismiss(){
EditView view = (EditView)getView().findViewByID(R.id.edit);
}
我知道我可以将 OnCreateDialog 中膨胀的视图保存为属性,但这对我来说似乎不合适。
从 onDismiss 中的屏幕获取视图的正确方法是什么?
Ps:我工作的地方不允许我发布我的代码,所以我从谷歌拿了一个代码,我把它改成了尽可能接近我的代码。