gpt4 book ai didi

java - 对话框和 edittext 监听器 : crash at setEnabled

转载 作者:行者123 更新时间:2023-11-30 03:11:33 25 4
gpt4 key购买 nike

你好,我很想知道这个对话框中的问题出在哪里。我正在尝试在 edittext 中创建一个对话框。如果 edittext 为空,则必须禁用肯定的 button 否则启用。我写了这段代码。

public class Example extends AlertDialog {

AlertDialog.Builder builder;
EditText mEditText;
Context mContext;
Button button;
String text;

protected Example(Context context) {
super(context);
// TODO Auto-generated constructor stub
builder = new AlertDialog.Builder(context);
this.mContext = context;
mEditText = new EditText(mContext);
builder.setView(mEditText);
builder.setPositiveButton("Okay", null);
builder.setNegativeButton("No", null);

mEditText.addTextChangedListener(new TextWatcher() {

@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {

AlertDialog dialog = builder.create();

text = mEditText.getText().toString();

if(text.trim().length()>0) {

button = dialog.getButton(AlertDialog.BUTTON_POSITIVE);

if(button != null)
button.setEnabled(true);

else
button = dialog.getButton(AlertDialog.BUTTON_POSITIVE);
button.setEnabled(false);
}

else
button = dialog.getButton(AlertDialog.BUTTON_POSITIVE);
button.setEnabled(false);

}

@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {

}

@Override
public void afterTextChanged(Editable s) {

}

});

builder.setTitle("Example Dialog");
builder.create();
builder.show();

}
}

当我执行这段代码并在 edittext 中写一些东西时,我在 if 中的 else 中得到了 NullPointerException 在此行 button.setEnabled(false); 哪里出了问题?

最佳答案

if 和 else 的作用域只到下一个语句。如果您想使用多个语句而不是将其包含在 block 中。例如-

else
{
button = dialog.getButton(AlertDialog.BUTTON_POSITIVE);
button.setEnabled(false);
}

关于java - 对话框和 edittext 监听器 : crash at setEnabled,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20867021/

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