Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/213.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 适配器的内容已更改,但ListView未收到通知。从AutoCompleteTextView_Android_Android Listview_Android Adapter - Fatal编程技术网

Android 适配器的内容已更改,但ListView未收到通知。从AutoCompleteTextView

Android 适配器的内容已更改,但ListView未收到通知。从AutoCompleteTextView,android,android-listview,android-adapter,Android,Android Listview,Android Adapter,当我选择时,我从AutoCompleteTextView中发现了这个问题 如何解决此错误 java.lang.IllegalStateException:适配器的内容已更改,但ListView未收到通知。确保适配器的内容不是从后台线程修改的,而是仅从UI线程修改的。确保适配器在其内容更改时调用notifyDataSetChanged() 代码: 公共类AutoSuggestAdapter扩展ArrayAdapter实现可过滤{ 列出托运人名单; 公共自动SuggestAdapter(上下文,in

当我选择时,我从AutoCompleteTextView中发现了这个问题

如何解决此错误

java.lang.IllegalStateException:适配器的内容已更改,但ListView未收到通知。确保适配器的内容不是从后台线程修改的,而是仅从UI线程修改的。确保适配器在其内容更改时调用notifyDataSetChanged()

代码:

公共类AutoSuggestAdapter扩展ArrayAdapter实现可过滤{
列出托运人名单;
公共自动SuggestAdapter(上下文,int textViewResourceId){
super(上下文,textViewResourceId);
托运人=新ArrayList();
}
公共void setData(列表stringList){
}
@凌驾
public int getCount(){
退货托运人。尺寸();
}
@凌驾
公共字符串getItem(int索引){
返回托运人。获取(索引);
}
@凌驾
公共过滤器getFilter(){
过滤器myFilter=新过滤器(){
@凌驾
受保护的筛选器结果性能筛选(CharSequence约束){
FilterResults FilterResults=新的FilterResults();
if(约束!=null){
Logger.d(“启动加载地址”);
新建QueryAddressRepository(getContext()).GetAddressList(constraint.toString(),address_list->{
托运人=地址和清单;
d.完成;
});
//现在将值和计数分配给FilterResults对象
filterResults.values=托运人;
filterResults.count=shippers.size();
}
返回过滤器结果;
}
@凌驾
受保护的void publishResults(CharSequence Contrint、FilterResults结果){
if(results!=null&&results.count>0){
notifyDataSetChanged();
}否则{
notifyDataSetionValidated();
}
}
};
返回myFilter;
}

}

是否可以发布活动代码?发生此问题的原因可能是您正在从后台线程调用notifyDataSetChanged。是否可以发布活动代码?发生此问题的原因可能是您正在从后台线程调用notifyDataSetChanged。
public class AutoSuggestAdapter extends ArrayAdapter<String> implements Filterable {

List<String> shippers;

public AutoSuggestAdapter(Context context, int textViewResourceId) {
    super(context, textViewResourceId);
    shippers = new ArrayList<String>();
}

public void setData(List<String> stringList) {

}

@Override
public int getCount() {
    return shippers.size();
}

@Override
public String getItem(int index) {
    return shippers.get(index);
}


@Override
public Filter getFilter() {

    Filter myFilter = new Filter() {

        @Override
        protected FilterResults performFiltering(CharSequence constraint) {
            FilterResults filterResults = new FilterResults();
            if (constraint != null) {
                Logger.d("Start load address");
                    new QueryAddressRepository(getContext()).getAdressList(constraint.toString(), address_list -> {
                        shippers = address_list;
                        Logger.d("Done");
                    });
                // Now assign the values and count to the FilterResults object
                filterResults.values = shippers;
                filterResults.count = shippers.size();
            }
            return filterResults;
        }

        @Override
        protected void publishResults(CharSequence contraint, FilterResults results) {
            if (results != null && results.count > 0) {
                notifyDataSetChanged();
            } else {
                notifyDataSetInvalidated();
            }
        }

    };

    return myFilter;
}