Выделить конкретное слово в текстовом представлении - PullRequest
6 голосов
/ 15 декабря 2011

Я создаю одно приложение, в котором я ищу слово Perticular в текстовом представлении. У меня есть один текст для редактирования, один текстовый вид и одна кнопка, когда я ввожу любое слово в текстовом редакторе и нажимаю кнопку, это дает мне положение строки и положение слова в этой строке из всего текстового файла ... Я добавил текстовый файл, содержащийся в текстовом представлении ... теперь мой вопрос заключается в том, могу ли я выделить все слова, которые есть в текстовом представлении, введенные путем редактирования текста. «Если я могу, пожалуйста, скажите мне, как это сделать .. если кто-нибудь имеет представление об этом?

Ответы [ 4 ]

7 голосов
/ 15 декабря 2011

Вы также можете сделать это, используя Spannable , что удобно, поскольку вы знаете положение слова:

    SpannableString res = new SpannableString(entireString);
    res.setSpan(new ForegroundColorSpan(color), start, end, SpannableString.SPAN_EXCLUSIVE_EXCLUSIVE);

Где entireString - строка, в которойслово для выделения существует, color - это цвет, который требуется для выделенного текста, start - это позиция слова, а end - это место, где заканчивается слово (start + word.length ()).

SpannableString res затем может быть применен к вашему текстовому обзору как обычная строка:

textView.setText(res);

Примечание: Если вы хотите, чтобы фон текста получал цвет, а несам текст, используйте BackgroundColorSpan вместо ForegroundColorSpan.

Edit: В вашем случае это будет что-то вроде этого (вам придется сохранить значения linecount и indexfoundкогда вы читаете весь текст):

for(String test="", int currentLine=0; test!=null; test=br2.readLine(), currentLine++){
    if(currentLine==linecount){
        SpannableString res = new SpannableString(test);
        res.setSpan(new ForegroundColorSpan(0xFFFF0000), indexfound, indexfound+textword.length(), SpannableString.SPAN_EXCLUSIVE_EXCLUSIVE);
    }
    tv.append("\n"+"    "+test);
}
3 голосов
/ 15 декабря 2011

Да Вы можете выделить некоторую часть текстового представления, написав HTML

String styledText = "This is <font color='red'>simple</font>.";
textView.setText(Html.fromHtml(styledText), TextView.BufferType.SPANNABLE);
0 голосов
/ 15 декабря 2011
string ="<font color='#ff0000' > <b>hello</b> </font>"

textview.setText(Html.fromHtml(string)) 

http://developer.android.com/reference/android/text/Html.html

0 голосов
/ 15 декабря 2011

используйте Spannable для установки текста в spannable, вы можете установитьSpan, с помощью которого вы можете выделить нужный текст

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...