我想做一个活动,它将检查电话号码的有效性。我有一个textview显示一个字符串“+91”和一个edittext我们可以输入一个电话号码。 我做了这个: -
public class MainActivity extends Activity {
EditText ed;
TextView textv;
Button btn;
String number = "+91";
Context context;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.test);
ed = (EditText) findViewById(R.id.ed1);
btn = (Button) findViewById(R.id.btn1);
textv = (TextView) findViewById(R.id.txt1);
textv.setText(number);
addlistener();
}
public void addlistener(){
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
try {
String ap;
String edstr = ed.getText().toString();
String txstr= textv.getText().toString();
ap=txstr+edstr;
PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();
PhoneNumber numberProto = phoneUtil.parse(ap, "");
String internationalFormat = phoneUtil.format(numberProto,PhoneNumberFormat.INTERNATIONAL);
Toast.makeText(getApplicationContext(),(phoneUtil.isValidNumber(numberProto) == true ? "Yes" : "No")
+ internationalFormat,
Toast.LENGTH_SHORT).show();
} catch (NumberParseException e) {
Toast.makeText(context,"error",Toast.LENGTH_SHORT).show();
}
}
});
}
}
此代码工作正常..并显示结果..我的要求是当我在edittext中输入电话号码时,它会自动显示我的代码中的validation.means我使用一个按钮来检查验证。我想要这个验证作为edittext。我现在要做什么????
答案 0 :(得分:0)
您可以使用onKeyListener
作为该edittext,检查按下的键是否为Enter,验证号码。
代码段:
ed.setOnKeyListener(new OnKeyListener() {
public boolean onKey(View v, int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_ENTER) {
validateNumber(ed.getText().toString())
}
return false;
}
});
您也可以使用addTextChangedListener
。
希望这有帮助。
答案 1 :(得分:0)
youredittext.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
//put your validation code here
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
@Override
public void afterTextChanged(Editable s) {
}
});