Как найти текст в андроиде через SearchView или EditText?

Я новичок в Android, и я делаю приложение, которое имеет TextView с очень длинной строкой, и я хочу, чтобы пользователь мог искать определенное слово в TextView через SearchView или EditText. Я знаю, что это возможно, потому что я видел это в некоторых приложениях, но не могу найти примеров того, как это сделать. Я кое-что читал о textwatcher, но не как это сделать. Что я хочу, так это работать как Ctrl + F: найти написанное слово и выбрать его приложением. Что-то вроде этого:

введите здесь описание изображения


person Pablo Villar    schedule 23.04.2015    source источник


Ответы (1)


Хорошо, вы уточните, как вы хотели искать текст? Вы просто хотите найти то, что есть или нет? и кроме того, вы хотите искать, вводя каждую букву в EditText?

если вы просто хотите сделать оба вышеперечисленных трюка, как показано ниже:

boolean hasText=false;
editText.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {
        }

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            if (count > 0 && (s.charAt(0) != '1')) {
               hasText=textView.getText().toString().contains(s.toString());
            }
        }

        @Override
        public void afterTextChanged(Editable s) {

        }
    });

Проверяя hasText true или false, вы не узнаете, есть он или нет.

person raggedycoder    schedule 23.04.2015
comment
Спасибо, это работает. но также хочу выделить слова, как это делает ctrl + f. - person Pablo Villar; 23.04.2015