经过大量研究并尝试(我认为)我能找到的每一种生命周期方法之后,我真的陷入了困境:
我想要什么:基本上我有这个 DialogFragment(“ProfileUsernameDialogFragment”),它应该显示我的布局文件(“fragment_profile_header_username_dialog”)。在这个布局文件中,我有一些 TextViews 和一些 EditTexts。我想将这些 EditTexts 的文本设置为我在程序中获得的某个值,因此无法预先设置它。
是)我有的:
public class ProfileUsernameDialogFragment extends DialogFragment {
...
@Override
public void onActivityCreated(Bundle savedInstanceState) {
EditText usernameText = (EditText) this.getView().findViewById(R.id.username_field);
usernameText.setText("TEST");
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
Log.d(AppController.LOG_STRING, this.getClass().toString() + " - onCreateDialog - START");
AlertDialog.Builder builder = new AlertDialog.Builder(this.getActivity());
View view = this.getActivity().getLayoutInflater().inflate(R.layout.fragment_profile_header_username_dialog, null);
builder.setView(view);
builder.setPositiveButton(SAVE_SETTINGS, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int whichButton) {
// Tried this too:
// EditText usernameText = (EditText)
// ProfileUsernameDialogFragment.this.getView().findViewById(R.id.forename_label);
// usernameText.setText("TEST");
}
});
builder.setNegativeButton(ABORT_ACTION, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int whichButton) {
dialog.dismiss();
}
});
builder.setTitle(CHANGE_NAME_SETTINGS);
Dialog dialog = builder.create();
return dialog;
}
}
我得到的是一个 NullPointerException,无论我尝试了 findViewById(R.id.username_field) 的哪个位置。(我也尝试过 onCreate 和其他一些方法,我开始认为我可能有除代码位置之外的另一个问题,但我真的不知道)我试图在 DialogFragments 中关注至少 6 个关于 NullPointers 的类似问题,所以我想我需要高级帮助^^
我应该添加我对 android 完全陌生,所以请友好,但是非常欢迎会议提示等!提前谢谢:)