我有一个代码,我在MainActivity中实现了onCreate,问题是,我的代码没有完全运行,我的意思是程序只检查if语句,并且不关心else语句。这是代码。
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
input = (EditText) findViewById(R.id.editText);
check = (Button) findViewById(R.id.button);
if(input.getText().toString().equals(""))
{
check.setVisibility(View.INVISIBLE);
}
else
{
check.setVisibility(View.VISIBLE);
}
当我开始活动时,我的按钮变得不可见,无论我在editText字段中写什么,我的按钮都不可见。正如我所看到的,应用程序并不关心else语句,只关注If。
也许我必须以某种方式重复这段代码?在每一秒?要确保程序检查editText字段是否为空?请帮助我,谢谢!
答案 0 :(得分:3)
你可以试试这个。
input.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void afterTextChanged(Editable editable) {
if(input.getText().toString().equals(""))
{
check.setVisibility(View.INVISIBLE);
}
else
{
check.setVisibility(View.VISIBLE);
}
}});
答案 1 :(得分:0)
您需要一个用于文本更改的侦听器并设置文本事件的可见性:
input.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if(input.getText().toString().isEmpty()) {
check.setVisibility(View.INVISIBLE);
} else {
check.setVisibility(View.VISIBLE);
}
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void afterTextChanged(Editable s) {
}
});