1

EditTextに電話番号を入力する準備があります。ユーザーが電話番号を+91+電話番号の形式で入力するようにします。つまり、ユーザーが最初の文字を入力する場合は、「+」であるかどうかを確認してから追加します。 EditTextに他のnot.likeこのように私は最初の3文字をチェックしたいです。これを行う方法は?

editText.addTextChangedListener(new TextWatcher() {

            @Override
            public void onTextChanged(CharSequence charSequence, int start, int before, int count) {
                String phNum = charSequence.toString();
                if(phNum.trim() .length() > 0 ){
                    int length = phNum.trim().length();
                    switch (length) {
                    case 1:
                        if(phNum.substring(0) != null && !phNum.substring(0).equals("+")){
                            editText.setText("");
                        }
                        break;
                    case 2:
                        if(phNum.substring(0,2) != null && !phNum.substring(0,2).equals("+9")){
                            editText.setText(phNum.substring(0,1));
                        }
                        break;
                    case 3:
                        if(phNum.substring(0,3) != null && !phNum.substring(0,3).equals("+91")){
                            editText.setText(phNum.substring(0,2));
                        }
                        break;

                    default:
                        break;
                    }
                    Toast.makeText(CallFilterActivity.this, "Enter +91 before number", Toast.LENGTH_SHORT).show();
                }

            }

            @Override
            public void beforeTextChanged(CharSequence s, int start, int count,
                    int after) {

            }

            @Override
            public void afterTextChanged(Editable s) {

            }
        });

前もって感謝します

4

2 に答える 2

0

TextWatcherリスナーを使用できます。例えば。

editText.addTextChangedListener(new TextWatcher() {

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {


        }

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count,
                int after) {


        }

        @Override
        public void afterTextChanged(Editable s) {
            if(isFirstCharacter){
              //check if the character is + and add
             }else{

             }

        }
    });
于 2013-03-27T10:09:06.583 に答える
0
Use something like this:

editText.addTextChangedListener(this);  
@Override
public void afterTextChanged(Editable s) {
    // TODO Auto-generated method stub
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
        int after) {
    // TODO Auto-generated method stug
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
    // TODO Auto-generated method stub
}

Check for the entered character and then allow further typing or display an alert.
于 2013-03-27T10:10:32.263 に答える