gpt4 book ai didi

android - DialogFragment - 在何处访问布局组件 [即editText.setText ("")]

转载 作者:行者123 更新时间:2023-11-29 21:28:13 25 4
gpt4 key购买 nike

在做了很多研究并尝试了(我认为)我能找到的每一种生命周期方法之后,我真的被困住了:

我想要什么: 基本上我有这个 DialogFragment(“ProfileUsernameDialogFragment”),它应该显示我的布局文件(“fragment_profile_header_username_dialog”)。在这个布局文件中,我有一些 TextViews 和一些 EditTexts。我想将这些 EditText 的文本设置为我在程序中获得的某个值,因此无法预先设置它。

我有什么:

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 的新手,所以请保持友善,但非常欢迎 session 提普等!提前致谢:)

最佳答案

以下是您需要的:

mAlertDialog.setOnShowListener(new DialogInterface.OnShowListener() {

@Override
public void onShow(final DialogInterface dialog) {

final Button b = mAlertDialog.getButton(DialogInterface.BUTTON_POSITIVE);
b.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(final View view) {

v.findViewById(R.id...)
}
});
}
});
});
}
});

关于android - DialogFragment - 在何处访问布局组件 [即editText.setText ("")],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19974796/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com