[英]How do I add an EditText to a DialogFragment?
I have created a DialogFragment and I would like to add an EditText but when I try and add it like this: 我创建了一个DialogFragment,我想添加一个EditText但是当我尝试添加它时:
final EditText input = new EditText(this);
I get an error on the "this" saying "The constructor EditText(EncryptionDialogFragment) is undefined". 我在“this”上写错了“构造函数EditText(EncryptionDialogFragment)未定义”。
My ultimate goal is to have the user enter their password this way. 我的最终目标是让用户以这种方式输入密码。
public class EncryptionDialogFragment extends DialogFragment {
final EditText input = new EditText(this);
static EncryptionDialogFragment newInstance(String title){
EncryptionDialogFragment fragment = new EncryptionDialogFragment();
Bundle args = new Bundle();
args.putString("title", title);
fragment.setArguments(args);
return fragment;
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
return new AlertDialog.Builder(getActivity())
.setIcon(R.drawable.ic_launcher)
.setTitle("Enter Password:")
.setView(input)
.setPositiveButton("OK",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int whichButton) {
((MainActivity)getActivity()).doPositiveClick();
}
})
.setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int whichButton) {
((MainActivity)getActivity()).doNegativeClick();
}
}).create();
}
} }
Use getActivity() 使用getActivity()
final EditText input = new EditText(getActivity());
and dont use it in field, initialize it in onCreateView where getActivity will not return null 并且不要在字段中使用它,在onCreateView中初始化它,其中getActivity不会返回null
this
needs to be a Context, ie an Activity. this
需要是一个Context,即一个Activity。 You can't create the EditText before your fragment has been attached to an activity. 在片段附加到活动之前,您无法创建EditText。 In
onCreateDialog
you can do new EditText(getActivity())
. 在
onCreateDialog
您可以执行new EditText(getActivity())
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.