如何在 EditText 中搜索并突出显示文本

发布于 2024-09-05 15:16:13 字数 464 浏览 6 评论 0原文

我到处寻找一些看似简单的任务。请原谅我,我是从其他编程语言转向 Android 的,并且对这个平台和 Java 都是新手。

我想要做的是创建一个弹出对话框,用户在其中输入要搜索的文本,代码将获取该文本并在 EditText 控件中的所有文本中搜索它,如果找到,则突出显示它。

我之前已经这样做过,例如在 VB 中,它的操作与此伪代码类似:

  1. 从 (EditText) 中获取文本并将其分配给一个字符串,
  2. 搜索该字符串的长度(逐个字符)查找子字符串,如果发现返回子字符串在字符串中的位置(索引)。
  3. 如果找到,则从返回的位置开始突出显示 (EditText).setSelection 的长度,

这是否有意义?

我只想搜索 EditText,找到后滚动到它,它就会突出显示。也许 Android/Java 中有与我需要的东西相当的东西?

任何帮助/指示将不胜感激

I've searched high and low for something that seems to be a simple task. Forgive me, I am coming to Android from other programming languages and am new to this platform and Java.

What I want to do is create a dialog pop-up where a user enters text to search for and the code would take that text and search for it within all the text in an EditText control and if it's found, highlight it.

I've done this before, for example in VB and it went something similar to this pseudo code:

  1. grab the text from the (EditText) assign it to a string
  2. search the length of that string (character by character) for the substring, if it's found return the position (index) of the substring within the string.
  3. if found, start the (EditText).setSelection highlight beginning on the returned position for the length of

Does this make sense?

I just want to search a EditText for and when found, scroll to it and it'll be highlighted. Maybe there's something in Android/Java equivalent to what I need here?

Any help / pointers would be greatly appreciated

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

杯别 2024-09-12 15:16:13
  1. 从 (EditText) 中获取文本并将其分配给字符串

尝试下面的代码示例:

EditText inputUsername = (EditText) findViewById(R.id.manageAccountInputUsername);
inputUsername.getText().toString()

^^ 将 ID 替换为您正在使用的 ID。

之后,您就可以使用标准字符串方法。您还可以使用正则表达式进行复杂的搜索查询:

  1. grab the text from the (EditText) assign it to a string

Try the code sample below:

EditText inputUsername = (EditText) findViewById(R.id.manageAccountInputUsername);
inputUsername.getText().toString()

^^ Replace the IDs with the IDs you are using.

After this, you have the standard string methods available. You could also use Regex for a complex search query:

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文