如何在发送
之前验证在edittext中输入的USSD代码我在这里给一些代码帮助我。
+=
我希望验证它必须包含*和#也最少5位数。
答案 0 :(得分:0)
这可能会有所帮助:
if (Pattern.matches("(\\*[0-9]+[\\*[0-9]+]*#)", ussd_edittext.getText().toString()) && ussd_edittext.length() >= 5) {
//USSD code is valid
} else {
//USSD code is not valid
}
答案 1 :(得分:0)
我做过类似的事。
ussd_edittext.addTextChangedListener(new TextWatcher()
{
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
ussd_edittext.setError("Invalid password");
ussd_ok.setEnabled(false);
}
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (ussd_edittext.getText().toString().trim().length() < 4 && ( ! t.contains(""+ussd_edittext))) {
ussd_edittext.setError("USSD code must contain * and #");
ussd_ok.setEnabled(false);
}
}
@Override
public void afterTextChanged(Editable s)
{
if (ussd_edittext.getText().toString().trim().length() > 4)
{
Character fc = ussd_edittext.getText().toString().charAt(0);
String lc = ussd_edittext.getText().toString().substring(ussd_edittext.length() - 1);
if(!((fc == '*') && lc.equals("#")))
{
ussd_edittext.setError("USSD code must contain * and #");
ussd_edittext.requestFocus();
}
else
{ ussd_ok.setEnabled(true); }
}
else
{ ussd_edittext.setError("USSD code must contain * and #"); }
}
});