0

editext用の汎用テキストウォッチャーがあります。以下に示すように、 setError() を使用して editext の検証を使用しました

private class GenericTextWatcher implements TextWatcher {

        private View view;

        private GenericTextWatcher(View view) {
            this.view = view;
        }

        // @Override
        public void afterTextChanged(Editable editable) {
            switch (view.getId()) {
            case R.id.autocompletetextview:

                isAlphaNumeric = validateEditText("^[a-zA-Z0-9 ,.-]*$", editLocation.getText().toString());

                if (!isAlphaNumeric) {
//                  editLocation.setError(getErrorMsg("Only , . and - are allowed"));
                    editLocation.setError(getText(R.string.invalid_loc_address));
                } else {


                }

            }
        }

        // @Override
        public void beforeTextChanged(CharSequence sequence, int start, int count, int after) {
        }
![enter image description here][1]
        // @Override
        public void onTextChanged(CharSequence sequence, int start, int before, int count) {

        }

    }

私が使用している検証は、編集テキストと重複しており、編集テキストの値は表示されません。エラーメッセージをシフトすることは可能ですか? 問題の適切な解決策を提案してください

4

1 に答える 1

0

Textview コンポーネントを xml ファイルに取り込みます。IDを与えtvErrorます。

TextView tvError = (TextView)findViewById(R.id.tvError);

private class GenericTextWatcher implements TextWatcher {

        private View view;

        private GenericTextWatcher(View view) {
            this.view = view;
        }

        // @Override
        public void afterTextChanged(Editable editable) {
            switch (view.getId()) {
            case R.id.autocompletetextview:

                isAlphaNumeric = validateEditText("^[a-zA-Z0-9 ,.-]*$", editLocation.getText().toString());

                if (!isAlphaNumeric) {

                    tvError.setText(getText(R.string.invalid_loc_address));
                } else {


                }

            }
        }

        // @Override
        public void beforeTextChanged(CharSequence sequence, int start, int count, int after) {
        }

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

        }

    }
于 2013-06-06T07:02:38.080 に答える