gpt4 book ai didi

android - ProgressDialog 的自定义对话框问题

转载 作者:行者123 更新时间:2023-11-29 22:27:06 25 4
gpt4 key购买 nike

我有一个从 Activity 调用的 LoginDialog。在 LoginDialog 中,我试图打开另一个对话框 (mProgressDlg) 来指示进度。在 mProgressDlg 布局中,我有 2 个 TextView。我在任何那些 TextViewsetText() 上得到了 NullPointerException

登录对话框:

    private Dialog mProgressDlg;
private TextView mMessage, mprogTitle, mProgMessage;
public LoginDialog(Context context) {
super(context);
mContext = context;
ld = null;
init();
}
private void init() {
this.setContentView(R.layout.user_pass_dialog);

mMessage = (TextView) findViewById(R.id.messageText);
mMessage.setText("Loaded ");

// ProgressDialog
mProgressDlg = new Dialog(mContext);
mProgressDlg.setContentView(R.layout.progress_dialog);
mProgTitle = (TextView) findViewById(R.id.titleText_progressDlg);
mProgMessage = (TextView) findViewById(R.id.message_progressDlg);
// On below 2 lines, I get NPE.
mProgTitle.setText("Hello");
mProgMessage.setText("Good Day");
}

进度对话框.xml

    <TextView android:id="@+id/titleText_progressDlg" android:text="TextView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:layout_marginTop="10dp" android:textStyle="bold"></TextView>
<TextView android:id="@+id/message_progressDlg" android:text="TextView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:layout_marginTop="10dp"></TextView>

登录目录:

04-06 14:54:29.087: ERROR/AndroidRuntime(379): Caused by: java.lang.NullPointerException
04-06 14:54:29.087: ERROR/AndroidRuntime(379): at orange.android.vpn.LoginDialog.init(LoginDialog.java:88) ***// THIS IS mProgTitle.setText("Hello");***
04-06 14:54:29.087: ERROR/AndroidRuntime(379): at orange.android.vpn.LoginDialog.<init>(LoginDialog.java:50) ***// THIS IS CALLING init() FROM CONSTRUCTOR***

谁能帮我知道,为什么我在访问 mProgTitle 和/或 mProgMessage 时在 init() 中得到这个 NullPointerException 。非常感谢任何帮助。

谢谢

最佳答案

mProgressDlg.setContentView(R.layout.progress_dialog);

mProgTitle = (TextView) findViewById(R.id.titleText_progressDlg);

应该是

 mProgressDlg.setContentView(R.layout.progress_dialog);

mProgTitle = (TextView) mProgressDlg.findViewById(R.id.titleText_progressDlg);

因为您正在访问对话框布局中的组件。只是 findViewById 用作 Activity 中的函数,因为您:使用 setContentView({layout}) 设置 Activity 的布局并使用 findViewById 访问组件,对于对话框,您键入 dialog.setContentView 并访问组件 samo diloag.findViewById

关于android - ProgressDialog 的自定义对话框问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5564315/

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