如何将EditText添加到DialogFragment?

Gre*_*ion 6 android dialog android-edittext

我创建了一个DialogFragment,我想添加一个EditText但是当我尝试添加它时:

final EditText input = new EditText(this);
Run Code Online (Sandbox Code Playgroud)

我在"this"上写错了"构造函数EditText(EncryptionDialogFragment)未定义".

我的最终目标是让用户以这种方式输入密码.

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();
} 
Run Code Online (Sandbox Code Playgroud)

}

nan*_*esh 6

使用getActivity()

final EditText input = new EditText(getActivity());
Run Code Online (Sandbox Code Playgroud)

并且不要在字段中使用它,在onCreateView中初始化它,其中getActivity不会返回null