- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用监听器创建一个 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/
我遇到了一个问题。我无法想象为什么会发生这种情况,也许你们可以。 我已经在 IB 中创建了一个 UIBarButtonItem 并正确链接了它。 A设置属性并合成它。一开始我将 btn 设置为禁用(v
我用 [myButton setEnabled: NO] 禁用了一个按钮.然后,我尝试使用 [myButton setEnabled: YES] 启用它.什么也没有发生。我忘记了什么吗? 最佳答案 检
所以我想要两个按钮,一个用于在 TextView 上加 1,另一个用于减去。 textview 上的结果不能小于 0。 所以我想在文本为 0 时将其设置为禁用,这样它就不能变成负值。但这并不像我想的那
我今天有一个奇怪的问题。我正在尝试实现一个游戏,其中我有一个带有一些按钮的 gridview。单击任何按钮时,它会被禁用(使用 setEnabled(false))。问题是,只有第一个按钮没有被禁用。
在 viewDidLoad 中,我检查两个 UITextField 是否具有有效输入(文本长度 > 0),然后设置 UIButton 的启用属性。使用调试器我发现 self.loginButton.e
我试图在用户按下按钮时启用 UIPanGestureRecognizer,以便他们可以平移对象。 我收到一条错误消息,指出选择器“setEnabled:”没有已知的类方法 代码: [UIPanGest
当我按下 JLabel 时,我收到一个 mousePressed 事件调用,我想在其中禁用 JButton。然而,什么也没有发生。这是为什么? 这是 JLabel mousePress 事件处理程序:
我使用了 FrameLayout,其中我使用了两个 LinearLayout。第二个最初是不可见的,但是当我在第一个布局上按下按钮时,第二个布局变得可见并与第一个布局重叠。我想要的是当我的第二个布局出
我有两个 EditText 字段,我想仅在用户在第一个 EditText 中输入一些值后才启用第二个 EditText。我尝试了以下但没有给出预期的结果。即使用户在第一个中输入值,第二个 editTe
我正在开发一个使用 Leanback 库的 Android TV 应用程序。有一个包含电子邮件、密码和登录按钮的登录表单。我只想在电子邮件和密码有效时启用登录按钮。 这是我的代码: mLoginBut
我希望某些对象在单击“不允许”通知后变得不可用和透明。但是,我有一个错误,如下图所示。我该如何解决这个问题? override func viewDidLoad() { super.viewD
我有这个代码: public TextView main_text;//begining of the class main_text = (TextView) findViewById(R.id.T
我试图启动一个应用程序,除了一个按钮之外,每个按钮都被禁用。首先,我尝试通过界面构建器将它们设置为禁用,然后在需要启用它们时将它们设置为启用。然而,当我调用 setEnabled: 它实际上并没有
我目前正在开发一个预订系统作为我学位的任务。按下按钮后禁用所选 JToggleButtons 的最佳方法是什么?所以购买后就没有座位了。我曾尝试使用 for 循环和数组,但在检索按下了哪个按钮时遇到了
我的目标是防止 Swing 中的 setEnabled 使我的 JLabel 和其他 JComponent 变灰而变得不可读。 (这样做的原因是我有另一种解决方案来指示启用状态 - 图标。) 根据对我
有一个 TFrame 后代类,如下所示: TCustomHistoryFrame = class(TFrame) tbMainFunction: TToolBar; // there's mo
我对 android studio 还很陌生。所以我对新手的问题表示歉意。我一直在阅读有关如何使用 setEnabled(); 的帖子启用和禁用底部的方法。正如您将在代码中看到的,我尝试启用以前禁用的
在我用按钮制作的游戏中,当我单击“下一步”按钮时,我会将其他一些按钮变为“灰色”,以便您无法单击它们。我的 ActionListener 中有以下代码用于“下一步”按钮: public cla
我的搜索栏有问题。我想让它禁用,但是当我使用 .setEnabled(false) 函数时,我的搜索栏消失了。如何避免这种情况? 我的布局: 我的代码: SeekBar seekB
我有一个带有 3 个 QLineEdit 和 2 个 QPushButton 的 GUI 应用程序。 当“TEXT INPUT A”和“TEXT INPUT B”不为空时,我想将“Button 1”设
我是一名优秀的程序员,十分优秀!