3 回答
TA贡献1813条经验 获得超2个赞
你要找的,可能是TextWatcher
使用示例:
boxID.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// TODO Auto-generated method stub
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
int inputLength = s.length();
if(inputLength >= 10 && inputLength <= 11)
{tv.setText("Refresh request sent");}
else if(inputLength<1)
{tv.setText("VC number field looks empty");}
else if(inputLength>1 && inputLength<10)
{tv.setText("VC number must be at least 10 digit");}
else {tv.setText("Wrong input");}
});
TA贡献1827条经验 获得超4个赞
好的,你有3个条件(实际上是4个)
和inputLength >= 10 && inputLength <= 11inputLength<1inputLength>1 && inputLength<10else
你可以让它像这样:
if(inputLength >= 10 && inputLength <= 11)
{tv.setText("Refresh request sent");}
if(inputLength<1)
{tv.setText("VC number field looks empty");}
if(inputLength>1 && inputLength<10)
{tv.setText("VC number must be at least 10 digit");}
if(inputLength > 11)
{tv.setText("Wrong input");}
我在陈述方面也有类似的问题。我不得不重建我的条件树。else if
TA贡献1793条经验 获得超6个赞
你是.最初,输入长度为空,它被保存到值为 0 的最终字段中。这就是为什么只有第二个条件被触发。inputLengthfinalinputLength
该值是在触发之前设置的。inputLengthonClick
一个解决方案要么是使用,要么是一个更简单的解决方案,只是在里面移动,这样你就可以为每个触发器获得一个新的输入长度值:TextWatcherinputLengthonClickonClick
@Override
public void onClick(View v) {
final int inputLength = boxID.getText().toString().length();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
if(inputLength >= 10 && inputLength <= 11)
tv.setText("Refresh request sent");
else if(inputLength<1)
tv.setText("VC number field looks empty"); //Only this one works at any input length
else if(inputLength>1 && inputLength<10)
tv.setText("VC number must be at least 10 digit");
else tv.setText("Wrong input");
}
})
}
添加回答
举报