我的布局中有一个AutoCompleteTextView . 当用户输入“@”字符时,我必须向他们显示一些建议 . 它通常是我从互联网上得到它的名字 .
我得到了名字,我创建了一个ArrayAdapter,如下所示 .
autoCtextView.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
// TODO Auto-generated method stub
String lsatChar = s.toString().substring(s.length()-1,s.length());
if(lsatChar.equals("@")) {
ArrayAdapter<String> adapter = new ArrayAdapter<String>(DisplayQuestionDetails.this,
android.R.layout.simple_list_item_1, namesLsist);
autoCtextView.setAdapter(adapter);
}
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
}
});
但这些建议没有显示出来 . 我做错了吗?请询问是否需要澄清问题
5 回答
你错过了
autoCtextView.setThreshold(1);
吗?(从第一个角色开始工作)
例如演示:
声明autocompleteTextView后填充第一个适配器 .
喜欢Ref here
}
在我的片段布局中,如果我不使用ems属性(字段大小的数量为“m”),则不会显示建议 . 如果存在,则显示建议 .
做这个:
在autoCtextView.addTextChangedListener之前(new TextWatcher(){...
我在这个blog的帮助下制作了自定义自动完成文本框 . 它适用于用户输入"@something",例如"@f"然后所有与'f'匹配的名字都会出现 .
CustomAutoComplete.java
布局文件:
主要活动: