我有一个提交按钮,我需要根据edittext字段是否为空来设置按钮的可见性。
我在活动的 onCreate 方法下面有以下代码段
submitIssue.setVisibility(View.VISIBLE);
if(issueTxt.getText().toString() == ""){
submitIssue.setVisibility(View.INVISIBLE);
}else{
submitIssue.setVisibility(View.VISIBLE);
}
在启动应用程序时,即使edittext为空,也会显示该按钮。我的方法出了什么问题?
答案 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)
请参阅以下链接:
您可以将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);
}