gpt4 book ai didi

android - 如何让我的按钮在 TextChanger 中可见?

转载 作者:行者123 更新时间:2023-11-30 00:36:36 27 4
gpt4 key购买 nike

我在 xml 中制作了一个不可见的按钮,我想在我的 EditText 中创建某个字符串值时再次使按钮可见。当使用 if 语句满足值时,我使用了 TextWatcher 检查。然而,当显示按钮的代码被执行时,应用程序崩溃说 textwatcher 停止工作。我对 android 开发还很陌生,所以可能是我搞砸了。

这是我的代码:

public class MainActivity extends AppCompatActivity
{
private EditText UserInput;
private Button button;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

Button button = (Button)findViewById(R.id.button);
UserInput = (EditText) findViewById(R.id.UserInput);
UserInput.addTextChangedListener(watch);
}

TextWatcher watch = new TextWatcher()
{
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}

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

if(s.toString().equals("teststring") ){
//program crashes when it reaches this part
button.setVisibility(View.VISIBLE);
}
else
{

}
}
@Override
public void afterTextChanged(Editable s) {

}
};
}

最佳答案

您已经在此处将Button 定义为Global 变量:

private Button button;

但是当您在 onCreate 方法中定义 View 时,您定义了一个 Local 变量 Button 并在此处实例化它:

Button button = (Button)findViewById(R.id.button);

稍后当您在 Button 上调用 setVisibility 时,您是在未实例化的 Global 变量上调用此方法。要解决此问题,只需像这样更改您的 onCreate 方法:

button = (Button)findViewById(R.id.button);

因此 Global 变量被实例化。

关于android - 如何让我的按钮在 TextChanger 中可见?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43319407/

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