其他声明没有运行? Android的

时间:2015-03-09 17:42:44

标签: android android-edittext

我有一个代码,我在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字段是否为空?请帮助我,谢谢!

2 个答案:

答案 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) {
    }
});