gpt4 book ai didi

android - AutoCompleteTextView - 当我们在过滤后有一个完全匹配项时如何禁用下拉列表?

转载 作者:太空宇宙 更新时间:2023-11-03 10:51:57 31 4
gpt4 key购买 nike

有没有简单的方法来做到这一点?因为只有一个元素与键入的文本相同的下拉菜单看起来多余。

我的适配器很简单,这是代码

AutoCompleteTextView autoCompleteTextViewAddress;
...
ArrayAdapter<String> adapter = new ArrayAdapter<String>(AvatarMainActivity.this, android.R.layout.simple_list_item_1, emailsSet.toEmailStringSet());
autoCompleteTextViewAddress.setAdapter(adapter);

emailsS​​et.toEmailStringSet() 返回字符串集。

当我用与字符串集中相同的电子邮件填充 autoCompleteTextViewAddress 时,我仍然可以查看包含一个元素的下拉列表。

最佳答案

丑陋的解决方案,但它有效:

public class CustomAutoCompleteTextView extends AutoCompleteTextView {

public CustomAutoCompleteTextView(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
public CustomAutoCompleteTextView(Context context, AttributeSet attrs)
{
super(context,attrs);
}
public CustomAutoCompleteTextView(Context context, AttributeSet attrs, int defStyle)
{
super(context,attrs,defStyle);
}
@Override
public boolean enoughToFilter()
{
boolean isEnough=(getThreshold()<=this.getText().length());

if(isEnough)
{
if(this.getAdapter()!=null)
{
int itemsCount=0;
int matchIndex=0;
String txt = this.getText().toString();
for (int i=0; i< this.getAdapter().getCount();i++)
{
String dat = (String)this.getAdapter().getItem(i);
if(dat.startsWith(txt))
{
itemsCount++;
matchIndex=i;
}
}
if(itemsCount == 1)
{
if(((String)getAdapter().getItem(matchIndex)).equals(txt))
{
isEnough=false;
}

}
}
}
return isEnough;

}


}

使用自定义类而不是原始的 AutoCompleteTextView

重写的 enoughToFilter 函数在我们的适配器中只有一个匹配记录时隐藏下拉列表

关于android - AutoCompleteTextView - 当我们在过滤后有一个完全匹配项时如何禁用下拉列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11969364/

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