有人可以给我一个使用 android 中的 BaseAdapter 填充 AutoCompleteTextView 的链接,用于手机联系人。

谢谢

最佳答案

user750716 错了。
您可以使用 BaseAdapter 填充 AutoCompleteTextView。您只需要记住 BaseAdapter 必须实现 Filterable。

在适配器中创建您的对象 ArrayList。
用你想要的任何 View 实现 getView 并用 objects.get(position) 信息填充它。
实现 getItem(int position) 返回一个字符串(单击对象的名称)

在同一个适配器中添加过滤内容:

public Filter getFilter() {
    return new MyFilter();
}

private class MyFilter extends Filter {

    @Override
    protected FilterResults performFiltering(CharSequence filterString) {
        // this will be done in different thread
        // so you could even download this data from internet

        FilterResults results = new FilterResults();

        ArrayList<myObject> allMatching = new ArrayList<myObject>()

        // find all matching objects here and add
        // them to allMatching, use filterString.

        results.values = allMatching;
        results.count = allMatching.size();

        return results;
    }

    @Override
    protected void publishResults(CharSequence constraint, FilterResults results) {
        objects.clear();

        ArrayList<myObject> allMatching = (ArrayList<myObject>) results.values;
        if (allMatching != null && !allMatching.isEmpty()) {
            objects = allMatching;
        }

        notifyDataSetChanged();
    }

}

关于android - 使用 BaseAdapter android 填充 AutoCompleteTextView,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5649429/

10-10 17:18