SearchView 小部件 - 有什么方法可以选择其中的所有文本吗?

发布于 2024-12-08 11:33:48 字数 185 浏览 0 评论 0原文

我正在使用 SearchView 小部件(Honeycomb 中的新功能)。我可以通过 setQuery 设置初始文本,这有效。

但是有没有办法选择所有文本(类似于EditText.selectAll)?

我想为用户提供以前搜索中的预设文本,同时也是输入新文本而不需要删除旧文本的简单方法。

I'm using SearchView widget (new in Honeycomb). I can set initial text by setQuery, that works.

But is there some way to select all text inside (similar to EditText.selectAll)?

I'd like to give user preset text from previous search, yet easy way to type new text without need to delete old.

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

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

发布评论

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

评论(3

何以畏孤独 2024-12-15 11:33:48

您只需要捕获内部的 EditText,然后做任何您想做的事情。

EditText edit = (EditText)searchView.findViewById(R.id.search_src_text);
edit.selectAll();

You just need to capture the inner EditText, then do anything you want.

EditText edit = (EditText)searchView.findViewById(R.id.search_src_text);
edit.selectAll();
对你再特殊 2024-12-15 11:33:48

有点晚了,但我也遇到了类似的问题。

我想为用户提供先前搜索中的预设文本,同时提供一种输入新文本而无需删除旧文本的简单方法。

我找到了一个适合我的解决方案。您只需要访问内部的 EditText,然后以通常的方式选择所有文本。

为此,请尝试执行以下操作。
请注意,我的代码是用 c# 编写的,而不是用 Java 编写的,但它是类似的。

int id = searchView.Context.Resources.GetIdentifier("android:id/search_src_text", null, null);
EditText editText = searchView.FindViewById<EditText>(id);
editText.SelectAll();

在 Java 中应该是这样的:

int id = searchView.getContext().getResources().getIdentifier("android:id/search_src_text", null, null);
EditText editText = (EditText) searchView.findViewById(id);
editText.selectAll();

我刚刚在 API 级别 15 上测试了它!但我认为它也适用于较低级别。

A little late but i had a similar issue.

I'd like to give user preset text from previous search, yet easy way to type new text without need to delete old.

I found a solution that worked for me. You just need to access to the inner EditText and then select all the text in usual way.

To do this try something like the following.
Please note that my code is in c# not in Java but its similar.

int id = searchView.Context.Resources.GetIdentifier("android:id/search_src_text", null, null);
EditText editText = searchView.FindViewById<EditText>(id);
editText.SelectAll();

In Java it should be something like this:

int id = searchView.getContext().getResources().getIdentifier("android:id/search_src_text", null, null);
EditText editText = (EditText) searchView.findViewById(id);
editText.selectAll();

I have just testet it on API level 15! But i think it works on lower levels, too.

邮友 2024-12-15 11:33:48

您想要做的事情在 PC 上运行良好,但在触摸设备上不太方便。

我会使用 建议提供程序 来允许用户重用最近的搜索,可能启用查询细化。

What you want to do works well on PCs, but but is not very convenient on touch devices.

I'd use suggestion provider to allow user to reuse recent searches, possibly with query refinement enabled.

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