在跨度字符串中搜索时,如何忽略字符高位的情况?

问题描述 投票:1回答:1

我已经在我的应用中实现了搜索机制,因此,当您过滤列表中的名称时,它会突出显示匹配的名称,唯一的问题是,它只会突出显示小写字母,而不会突出显示大写字母或大写字母后跟。

这是我的代码,以突出显示搜索到的字符:

if(! searchText.isEmpty()) {
                if(guest.getGuestFirstName().contains(searchText)){
                    int startPos = guest.getGuestFirstName().indexOf(searchText.toLowerCase(Locale.US));
                    int endPos = startPos + searchText.length();

                    if (startPos != -1) // This should always be true, just a sanity check
                    {
                        Spannable spannable = new SpannableString(guest.getGuestFirstName());
                        Typeface firstNameFont = Typeface.createFromAsset(context.getAssets(), "fonts/Graphik-Semibold.otf");
                        spannable.setSpan(new CustomTypefaceSpan("", firstNameFont), startPos, endPos, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
                        guestFirstName.setText(spannable);
                    }
                } else {
                    Objects.requireNonNull(guestFirstName).setText(guest.getGuestFirstName());

                }

现在,如果我搜索“一个”,它将在“ angela脚跟”中突出显示“ an”个字符,但是如果我搜索“一个”,它将根本不突出显示任何字符,反之亦然,例如,如果“ Angela Heely “以大写字母开头,而我以“ an”搜索,则不会突出显示“ An”。可能是我缺少的简单事物,但是任何帮助或想法都会使它不区分大小写以突出显示搜索到的文本。

也可以使用任何正则表达式。现在searchtext字符串,无论大小写如何,都返回用户搜索的内容。说“安吉拉”,“一个”等

谢谢!

我已经在我的应用程序中实现了搜索机制,当您过滤列表中的名称时,它会突出显示匹配的名称,唯一的问题是,它只会突出显示小写字母...

java android android-adapter android-search android-typeface
1个回答
0
投票
您的问题是该行中的包含物:
© www.soinside.com 2019 - 2024. All rights reserved.