gpt4 book ai didi

java - Button.setEnabled() 导致 EdiTtext 崩溃

转载 作者:行者123 更新时间:2023-12-01 23:18:27 24 4
gpt4 key购买 nike

我正在尝试使用监听器创建一个 EditText 来检查输入文本的长度。如果 EditText 不为空,则应启用该按钮,否则必须禁用该按钮。为此,我编写了这段代码。

        final EditText editText = new EditText(context);
builder.setView(editText);
builder.setTitle("TItle");

builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int i) {



}
});

builder.setNegativeButton("No", null);

editText.addTextChangedListener(new TextWatcher() {

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

public void onTextChanged(CharSequence s, int start, int before, int count)
{
AlertDialog dialog = builder.create();
dialog.show();
String text = editText.getText().toString();

if(text.trim().length()>0) {
button = dialog.getButton(AlertDialog.BUTTON_POSITIVE);
button.setEnabled(false);
}
else {
button = dialog.getButton(AlertDialog.BUTTON_POSITIVE);
button.setEnabled(false);
}
}


@Override
public void afterTextChanged(Editable arg0) {
// TODO Auto-generated method stub

}
});

只要在 EditText 中写一些东西就会崩溃并出现 NullPointerException:button.setEnabled(false);

为什么?我该如何解决?

最佳答案

更新

在您的情况下,似乎 dialogo.getButton() 返回 null 。我抬头一看,有一个similar issue相关。

基本上,在调用 getButton() 之前,您需要 dialogo.show()。因此,将您的代码更新为:

builder.setNegativeButton("No", null);
final AlertDialog dialog = builder.create();
dialog.show();
editText.addTextChangedListener(new TextWatcher() {

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

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

String text = editText.getText().toString();
...
...
button = dialog.getButton(AlertDialog.BUTTON_POSITIVE);
if(button != null) {
if(text.trim().length()>0) {
button.setEnabled(true);
}
else {
button.setEnabled(false);
}
}
}
...
...

旧答案

else 更改为以下内容:

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

关于java - Button.setEnabled() 导致 EdiTtext 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20866608/

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