0

DIAL に電話番号を入力するために、アプリケーションで EditField を使用しています。

今私の質問は、

1) if begins with 1, it should be only 10 max digits after the 1, 

2) if 011, up to 15 digits max, but no fewer than 8 after 011.

EditField でこれを行う方法を教えてください。

4

2 に答える 2

1

edittext に textWatcher を追加し、上限を変更します

于 2013-02-22T10:21:25.707 に答える
0

これがあなたの解決策に対する答えです。ヒントタイプだけの非常に貧弱なソリューションですが、必要に応じてコードを変更できます

final int LIMIT_FIRST = 10;
        final int LIMIT_SECOND = 15;
        final EditText et = (EditText) findViewById(R.id.edittext);
        et.setSingleLine();
        et.addTextChangedListener(new TextWatcher() {

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                String stringValue = s.toString().trim();
                int stringLength = stringValue.length();
                if(stringLength == 0){
                    InputFilter[] FilterArray = new InputFilter[1];
                    FilterArray[0] = new InputFilter.LengthFilter(1000);
                    et.setFilters(FilterArray);
                }else if(stringLength == 1){
                    if(stringValue.equalsIgnoreCase("1")){
                        InputFilter[] FilterArray = new InputFilter[1];
                        FilterArray[0] = new InputFilter.LengthFilter(LIMIT_FIRST);
                        et.setFilters(FilterArray);
                    }
                }else if(stringLength == 3){
                    if(stringValue.equalsIgnoreCase("011")){
                        InputFilter[] FilterArray = new InputFilter[1];
                        FilterArray[0] = new InputFilter.LengthFilter(LIMIT_SECOND);
                        et.setFilters(FilterArray);
                    }
                }
                System.out.println(s);
            }

            @Override
            public void beforeTextChanged(CharSequence s, int start, int count,
                    int after) {
                System.out.println(s);
            }

            @Override
            public void afterTextChanged(Editable s) {
                System.out.println(s);
            }
        });

これが役立つかどうか教えてください

于 2013-02-22T11:15:55.910 に答える