Любая встроенная опция фильтрации для EditText? - PullRequest
0 голосов
/ 18 мая 2011

Можно ли прикрепить фильтры (я не уверен насчет названия этого) к EditTexts, чтобы, если пользователь вводит что-то неправильным образом, какое-то предупреждение появляется на EditText?

Например: в форме есть EditText, и он должен быть заполнен.Поэтому, пока он не пуст, в нем отображается какое-то предупреждение, показывающее, что это обязательное поле в форме.

Я видел похожее поведение на EditTexts во всем Android, так что я думаю, что есть встроенная функция дляэто, но я не могу найти это.Может ли кто-нибудь помочь мне, пожалуйста?

Целевая версия Android 3.0 и выше.

Ответы [ 3 ]

1 голос
/ 18 мая 2011

Вы можете добавить TextWatcher и соответственно отреагировать в вашей реализации public void afterTextChanged(Editable s). Просто проверьте, является ли s пустым или нет, или это правильно или нет.

Вы можете также использовать фильтры , но обычно они препятствуют вводу пользователем неправильных данных.

1 голос
/ 18 мая 2011

Вы можете добавить фильтр, используя код с событием Text watcher.Когда вы вводите любой текст в Edit Text, событие просмотра текста выполняется, тогда мы можем проверить текст в редактируемом тексте, если условие ложно, тогда вы должны показать всплывающее окно.Я показываю пример фильтрации в представлении списка с использованием редактирования текста с помощью события наблюдателя текста, которое необходимо использовать для фильтрации в тексте редактирования.

ed.addTextChangedListener (new TextWatcher () {

        public void afterTextChanged(Editable s) {
        }

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

        public void onTextChanged(CharSequence s, int start, int before,
                int count) {
            fillMaps.clear();
            textlength = ed.getText().length();
            for (int i = 0; i < countryName.length; i++) {
                if (textlength <= countryName[i].length()) {
                    if (ed.getText()
                            .toString()
                            .equalsIgnoreCase(
                                    (String) countryName[i].subSequence(0,
                                            textlength))) {
                        HashMap<String, String> map = new HashMap<String, String>();
                        map.put("flag", "" + imageId[i]);
                        map.put("country", countryName[i].toString());
                        map.put("capital", capitalName[i].toString());
                        map.put("countrytime",
                                convertDateTimeToGMT(
                                        GMTplusMinusInMillisecond[i],
                                        plusMinus[i]));
                        map.put("GMT", GMTplusMinus[i].toString());

                        fillMaps.add(map);
                    }
                }
            }
            SimpleAdapter adapter = new SimpleAdapter(
                    WorldClockActivity.this, fillMaps, R.layout.grid_item,
                    from, to);
            lv1.setAdapter(adapter);
            // lv1.setAdapter(new
            // ArrayAdapter<String>(WorldClockActivity.this,android.R.layout.simple_list_item_1
            // , arr_sort));

        }
    });
1 голос
/ 18 мая 2011

Посмотрите на android:inputType атрибут EditText в xml. Например android:inputType="textEmailAddress|number|phone" и другие вещи.
Но для проверки пустоты я не могу предложить ничего, кроме if (editText.getText().length() > 0).

...