自定义Android AutoCompleteTextView验证器

时间:2012-09-19 15:59:16

标签: android autocompletetextview

我正在努力在我的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中相同字母开头的单词进行响应,则整个方法效果很好。

建议? 提前致谢

2 个答案:

答案 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