Edittext onclick监听器如何工作?

时间:2014-09-08 06:05:56

标签: android android-edittext

我想做一个活动,它将检查电话号码的有效性。我有一个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。我现在要做什么????

2 个答案:

答案 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) {


        }
    });