2011-10-25 45 views
1

這可能只是想法問題。 我在一個ScrollLayout中有很多textViews(所以我們可以說只有一半顯示在屏幕上)。然後我有一個editText,我正在考慮如何突出顯示&滾動到textView,它包含與用戶在editText中寫入的字符串值相同的值。 例如:突出顯示Android上的TextView中的文本

editText.text = "Test" 
textView.text = "Testing Issue" 
textView2.text = "Bla Bla" 

我想強調的部分/全(並不重要),配合相應文字的值的TextView。

非常感謝提前和抱歉,如果我的問題是跛腳:)因爲我是Android的新手。

回答

3

在這種情況下,我建議使用一個ListView,並有一個單獨的行evey文本段。

您爲EditText指定了一個TextWatcher,它有一個回調函數,在輸入每個字母后調用。在此回調函數中,您搜索輸入的字符串(可能是異步的),並獲取行的位置包含指定的子字符串。

現在要將ListView滾動到第一個事件,可以使用它的.smoothScrollToPosition()方法。

至於亮點,您可能使用TextView小部件查看行中的文本。您可以使用.setText()設置在這些內部查看的文本,該文件也接受Spannable/Spanned對象。這些是類固醇的字符串,您可以在字符串的不同區域分配樣式跨度。所以你可以用它來例如顯示你在不同的顏色/背景等中找到的子字符串。

或使用html。 Html.fromHtml()實際上將提供的字符串中的html標記處理爲Spannable對象,因此可能更容易處理:)

+0

謝謝,這就是我需要的:) – Alone89

2

如果你談論的是做一些文字看起來不同withing相同TextView的,那麼,你可以將特定文本加粗或不同的東西,如:

textView.setText(HTML.fromHtml("Testing" + "<b>Issue</b>")); 
0

創建一個樣式的資源,那麼當用戶進入文本和點擊提交搜索與匹配的文本的所有文本框,並將其應用於它的樣式資源,以使它高亮