我正在努力在我的Android应用中实施自定义验证器。 我想在列表视图中显示从服务器检索到的一些建议(正常工作),即使我的AutoCompleteTextView中没有以相同的文本字母开头。
所以,即如果我写“n”我想得到服务器响应,那就是“r”。
因此,我尝试实现一个验证设置isValid
示例的验证,该示例控制服务器响应是否为空。
我在这里显示我的代码:
autoCompleteTextView.setAdapter(adapter);
autoCompleteTextView.setValidator(new Validator());
autoCompleteTextView.performValidation();
和Validator类:
类Validator实现AutoCompleteTextView.Validator {
public boolean isValid(CharSequence text) {
Log.v("Test", "Checking if valid: ");
int i = 0;
if (!MainActivity.interventos.isEmpty()) {
return true;
}
return false;
}
public CharSequence fixText(CharSequence arg0) {
// TODO Auto-generated method stub
return null;
}
isValid()总是返回False,但它应该返回True,因为MainActivity.interventos不为空。
Ps:如果服务器使用与AutocompleteTextView中相同字母开头的单词进行响应,则整个方法效果很好。
建议? 提前致谢
答案 0 :(得分:1)
我有一个类似的问题,我使用CustomArrayAdapter和viewHolder实现了一个过滤器来从服务器获取数据。因此,您可以在自动完成列表数据中显示所需内容。 所以验证器没用,你不需要它。 享受并保持我!
答案 1 :(得分:1)
不要让自己复杂化,我在这里给出了一个简单的AutoCompleteTextview验证代码
String str = clientName.getText().toString();
ListAdapter listAdapter = clientName.getAdapter();
for(int i = 0; i < listAdapter .getCount(); i++) {
String temp = listAdapter .getItem(i).toString();
if(str.compareTo(temp ) == 0)
{
return;
}
}
了解更多信息click here