gpt4 book ai didi

java - 获取自定义对话框中包含的 EditText 的值

转载 作者:搜寻专家 更新时间:2023-11-01 08:49:33 25 4
gpt4 key购买 nike

所以我在我的应用程序中制作了一个自定义对话框,其中包含一个专门针对数字格式化的 EditText 字段。我将代码设置为在用户单击按钮时启动对话框。我遇到的问题是,当用户确认他们输入的信息时,我收到如下错误:

java.lang.NullPointerException: Attempt to invoke virtual method 'android.text.Editable android.widget.EditText.getText()' on a null object reference

知道我可能做错了什么吗?这是我的对话框 inflater 和按钮单击处理程序的完整代码。

public Dialog onCreateDialog() {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
// Get the layout inflater
LayoutInflater inflater = this.getLayoutInflater();
Log.i("INFO","Creating Dialog...");

// Inflate and set the layout for the dialog
// Pass null as the parent view because its going in the dialog layout
builder.setView(inflater.inflate(R.layout.goaldialog, null))
// Add action buttons
.setPositiveButton(R.string.SetAGoalButton, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
EditText et = (EditText) findViewById(R.id.GoalChooser);
Integer goalNumber = Integer.parseInt(et.getText().toString());
Log.i("INFO",Integer.toString(goalNumber));
dialog.dismiss();
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.dismiss();
}
});
builder.show();
return builder.create();
}

我是 android 和 Java 的新手,因此不胜感激。

更新 intrepidkarthi 的回答解决了我最初的问题,但现在返回的字符串如下所示:

07-22 14:13:43.687  29972-29972/com.collusion.serviceassistant D/INFO﹕ [ 07-22 14:13:43.687 29972:29972 D/AndroidRuntime ]
Shutting down VM

我正在使用此从 EditText 获取文本:

String goalNumberString = String.valueOf(et.getText());

最佳答案

试试这个。

public Dialog onCreateDialog() {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
// Get the layout inflater
LayoutInflater inflater = this.getLayoutInflater();
Log.i("INFO","Creating Dialog...");
View view = inflater.inflate(R.layout.goaldialog, null);
// Inflate and set the layout for the dialog
// Pass null as the parent view because its going in the dialog layout
builder.setView(view)
// Add action buttons
.setPositiveButton(R.string.SetAGoalButton, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
EditText et = (EditText)view.findViewById(R.id.GoalChooser);
Integer goalNumber = Integer.parseInt(et.getText().toString());
globalVariable = goalNumber;
Log.i("INFO",Integer.toString(goalNumber));
dialog.dismiss();
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.dismiss();
}
});
builder.show();
return builder.create();
}

关于java - 获取自定义对话框中包含的 EditText 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24895509/

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