这可能只是想法问题。 我在一个ScrollLayout中有很多textViews(所以假设只有一半在屏幕上显示)。然后我有一个editText,我正在考虑如何突出显示&滚动到textView,其中包含与用户在editText中编写的相同的字符串值。 例如:
editText.text = "Test"
textView.text = "Testing Issue"
textView2.text = "Bla Bla"
我想用相应的文本值突出显示部分/完整(无关紧要)textView。
非常感谢,如果我的问题很蹩脚,我很抱歉,因为我是Android新手。
答案 0 :(得分:3)
在这种情况下,我建议使用ListView,并为您拥有的evey文本段分别设置一行。
您为EditText指定了一个TextWatcher,它有一个在每个输入的字母后调用的回调。在这个回调中,您搜索输入的字符串(可能是异步的),然后返回行的位置包含指定的子字符串。
现在要将ListView滚动到第一个出现,你可以使用它的.smoothScrollToPosition()方法。
对于亮点,您可能使用TextView小部件查看行中的文本。您可以使用.setText()设置在这些文本中查看的文本,该文本也接受Spannable / Spanned对象。这些是类固醇上的字符串,您可以在字符串的不同区域分配样式跨度。所以你可以使用它来例如显示您在不同颜色/背景/等中找到的子字符串。
或者使用html。 Html.fromHtml()实际上将提供的字符串中的html标记处理为Spannable对象,因此可能更容易使用:)
答案 1 :(得分:2)
如果您正在谈论在同一文本视图中使某些文本看起来不同,那么,您可以使特定文本变为粗体或类似的东西:
textView.setText(HTML.fromHtml("Testing" + "<b>Issue</b>"));
答案 2 :(得分:0)
创建一个样式作为资源然后当用户输入文本并单击提交搜索所有带有匹配文本的文本框并将样式资源应用于它以便高亮显示