如果edittext不为空,则设置按钮的可见性

时间:2018-01-12 09:48:21

标签: java android

我有一个提交按钮,我需要根据edittext字段是否为空来设置按钮的可见性。

我在活动的 onCreate 方法下面有以下代码段

submitIssue.setVisibility(View.VISIBLE);

if(issueTxt.getText().toString() == ""){
    submitIssue.setVisibility(View.INVISIBLE);
}else{
    submitIssue.setVisibility(View.VISIBLE);
}

在启动应用程序时,即使edittext为空,也会显示该按钮。我的方法出了什么问题?

6 个答案:

答案 0 :(得分:0)

试试这个 - :

if(TextUtils.isEmpty(issueTxt.getText().toString()))
{
   submitIssue.setVisibility(View.INVISIBLE);
}
else
{
   submitIssue.setVisibility(View.VISIBLE);
}

答案 1 :(得分:0)

像这样使用

 editText.addTextChangedListener(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().length()<1){
                      button.setVisibility(View.GONE)
                   }else button.setVisibility(View.VISIBLE)
                }

                @Override
                public void afterTextChanged(Editable s) {

                }
            });

答案 2 :(得分:0)

使用Android提供TextUtils.isEmpty()实用程序方法:

if(TextUtils.isEmpty(issueTxt.getText().toString())){
    submitIssue.setVisibility(View.INVISIBLE);
} else {
    submitIssue.setVisibility(View.VISIBLE);
}

答案 3 :(得分:0)

试试这个

   if(editText.getText().toString().trim().equals("")){

}

或者

if(editText.getText().toString().trim().length==0){
}

在检查edittext是否为空时总是尝试使用trim()函数,因为如果你使用没有trim()函数而不是空格(&#34;&#34;)会给你带来问题......

editText.addTextChangedListener(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) {
               // Add your code here
            }

            @Override
            public void afterTextChanged(Editable s) {

            }
        });

您可以将TextChangeLister用于其他进程。

答案 4 :(得分:0)

您必须使用 TextWatcher()来实现此目的。

并且对于匹配字符串,您应该使用equals()方法而不是==

例如:

String1.equals(String2)

请参阅以下链接:

TexWatcher fo Android

TextChangerListener Android

您可以将TextWatcher用作edittext

例如:

 editText.addTextChangedListener(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(TextUtils.isEmpty(issueTxt.getText().toString()))
                   {
                        submitIssue.setVisibility(View.INVISIBLE);
                   }
                   else
                   {
                        submitIssue.setVisibility(View.VISIBLE);
                   } 

            }

            @Override
            public void afterTextChanged(Editable s) {
                // You can do Validation here too
            }

答案 5 :(得分:0)

试试这个:

submitIssue.setVisibility(View.VISIBLE);

    if(issueTxt.getText().toString().length() == 0){
        submitIssue.setVisibility(View.INVISIBLE);
    }else{
        submitIssue.setVisibility(View.VISIBLE);
    }