gpt4 book ai didi

android - AutoCompleteTextView 适配器, "hidden"适配器?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:07:20 27 4
gpt4 key购买 nike

我有 3 个 AutoCompleteTextView,我想在它们上面注册 2 个 String[] 适配器。目前,我正在这样做:

atw_from.setAdapter(new ArrayAdapter(ctx, android.r.layout.simple_dropdown_item_1line, stages_adapter));

假设我的用户想要输入“Középmező”,他开始输入“Közé”,系统会提示他选择 Középmező,直到这一步,这非常简单。但是,如果用户懒得输入重音符号(很多人都是懒惰的),因此他只会输入 Kozepmezo,那么他将不会得到任何报价,因为我的 String[] 中没有 Kozepmezo。我想要的是,如果他输入“Koze”,应该向他提供 Középmező,这样即使他不使用重音符号,他也总是会被提供带有重音符号的实际单词。

目前,我有一个非常愚蠢的解决方案,我有一个 String[],其大小是原始 [] 的两倍,前半部分包含带重音的单词,第二部分包含去重音版本。所以现在,如果他输入 Közé,他将获得 Középmező,如果他输入 Koze,他将获得 Kozepmezo。它之所以有效,是因为服务器可以处理两个版本,但它看起来很傻,我想解决它。

据我所知,我应该制作一个完整的自定义适配器。这是最好的方法,还是 SDK 中包含任何解决方案?如果我应该制作自定义适配器,任何人都可以指出正确的方向,如何去做吗? :)

编辑:添加了我自己的答案,应该对每个人都有效,为其他答案欢呼,这将我引向了正确的方向!

最佳答案

好吧,在处理这个问题的屁股上经历了很多痛苦之后,这就是我最后所做的事情。这根本不是一个好的做法,我可能做错了,但至少它现在工作得很好。

直接ctrl+c,ctrl+v BaseAdapter的源码, 和 ctrl+c, ctrl+v ArrayAdapter 的源代码.现在看私有(private)内部类ArrayFilter,尤其是performFiltering方法。修改(而不是覆盖!)它,只要你想,在我的例子中,我添加了很多 .replace("x","y") 东西,用于去重部分。

无论我尝试过什么,要么产生不可预测的强制关闭(很多,而且完全是随机的),要么我就是做不到,因为太多的方法/变量是私有(private)的,而不是 protected 。我必须说,Google 应该重新审视这些代码...

注意:你真的不需要 ctrl+c ctrl+v BaseAdapter 代码,因为它是一个公共(public)抽象类,但是嘿,它不是那么多代码,这样一切都在那里,很明显对你可见。

干杯

关于android - AutoCompleteTextView 适配器, "hidden"适配器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9658308/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com