Xamarin.android 过滤适配器后的IndexOutOfBoundsException

Xamarin.android 过滤适配器后的IndexOutOfBoundsException,xamarin.android,autocompletetextview,Xamarin.android,Autocompletetextview,我有一个自动完成控件,它将从api中绘制,以构建自动完成下拉列表。我已将所有内容连接起来,但在键入时出现以下错误: 03-26 13:41:40.546 E/AndroidRuntime31931:java.lang.IndexOutOfBoundsException:索引:0,大小:0 03-26 13:41:40.546 E/AndroidRuntime31931:at java.util.ArrayList.getArrayList.java:437 03-26 13:41:40.546

我有一个自动完成控件,它将从api中绘制,以构建自动完成下拉列表。我已将所有内容连接起来,但在键入时出现以下错误:

03-26 13:41:40.546 E/AndroidRuntime31931:java.lang.IndexOutOfBoundsException:索引:0,大小:0 03-26 13:41:40.546 E/AndroidRuntime31931:at java.util.ArrayList.getArrayList.java:437 03-26 13:41:40.546 E/AndroidRuntime31931:at android.widget.ArrayAdapter.getItemArrayAdapter.java:385 03-26 13:41:40.546 E/AndroidRuntime31931:at android.widget.AutoCompleteTextView.BuildTimeCompletionSautoCompleteTextView.java:1243 03-26 13:41:40.546 E/AndroidRuntime31931:at android.widget.AutoCompleteTextView.showDropDownAutoCompleteTextView.java:1203 03-26 13:41:40.546 E/AndroidRuntime31931:at android.widget.AutoCompleteTextView.updateDropDownForFilterAutoCompleteTextView.java:1086 03-26 13:41:40.546 E/AndroidRuntime31931:at android.widget.AutoCompleteTextView.onFilterCompleteAutoCompleteTextView.java:1068 03-26 13:41:40.546 E/AndroidRuntime31931:at android.widget.Filter$ResultsHandler.handleMessageFilter.java:285 03-26 13:41:40.546 E/AndroidRuntime31931:at android.os.Handler.dispatchMessageHandler.java:106 03-26 13:41:40.546 E/AndroidRuntime31931:at android.os.Looper.Looper.java:164 03-26 13:41:40.546 E/AndroidRuntime31931:at android.app.ActivityThread.mainActivityThread.java:6494 03-26 13:41:40.546 E/AndroidRuntime31931:at java.lang.reflect.Method.Invokenactive Method> 03-26 13:41:40.546 E/AndroidRuntime31931:com.android.internal.os.RuntimeInit$MethodAndArgsCaller.RuntimeInit.java:438 03-26 13:41:40.546 E/AndroidRuntime31931:com.android.internal.os.ZygoteInit.mainZygoteInit.java:807

我的适配器类

公共类UserFilterAdapter:ArrayAdapter,IFilterable { 私有只读上下文\u上下文; 私有只读int_textViewResourceId; 专用只读筛选器_筛选器; 私有列表_userAutoComplete; public override int Count=>\u userAutoComplete?.Count±0; 公共覆盖过滤器=>\u过滤器; public DirectoryOrgUnitFilterAdapterList用户自动完成,上下文上下文,int-textViewResourceId:basecontext,textViewResourceId { _上下文=上下文; _过滤器=新用户自动完成过滤器此; _textViewResourceId=textViewResourceId; _userAutoComplete=userAutoComplete; } public void RefreshAdapterList用户自动完成 { _userAutoComplete=userAutoComplete; 改变数据; } 公共覆盖视图GetViewint位置、视图转换视图、视图组父级 { 如果convertView==null { var inflater=LayoutInflater\u context.GetSystemServiceContext.LayoutInflaterService; convertView=inflater.Inflate_textViewResourceId,父项,false; } var itemName=convertView.findviewbydresource.Id.user\u autocomplete\u item\u name; var itemType=convertView.findviewbydresource.Id.user\u autocomplete\u item\u type; var item=GetItemposition; itemName.Text=item.UserName; itemType.Text=item.Email; 返回视图; } } 我的过滤类

公共类UserAutoCompleteTFilter:筛选器 { 专用只读UserFilterAdapter\u适配器; 公用用户AutoCompleteTFilterUserFilterAdapter适配器 { _适配器=适配器; } 受保护的覆盖筛选器结果PerformFilteringCharSequence约束 { var结果=新筛选结果; 如果字符串.IsNullOrEmptyconstraint?.ToString { 返回结果; } var searchFor=constraint.ToString; 如果搜索长度小于3 { 返回结果; } var matches=ApiService.GetUserssearchFor.ConfigureAwaitfalse.GetAwaiter.GetResult; results.Values=FromArraymatches.Selectr=>r.ToJavaObject.ToArray; results.Count=matches.ToList.Count; 约束、处置; 返回结果; } 受保护的覆盖无效PublishResultsICharSequence约束,FilterResults结果 { 如果结果为?.Values==null { 回来 } 使用var值=results.values { _adapter.RefreshAdaptervalues.ToArray.Selecta=>a.ToNetObject.ToList; } 约束、处置; 结果:处理; } } 我通过逻辑进行了调试,过滤被命中并返回数据,所以我不知道它在哪里丢失数据并抛出越界异常


我遵循了在C中使用过滤的教程,然后是将其应用于自动完成文本视图控件的教程。

我终于让它工作了。关键问题是我的适配器使用的是ArrayAdapter而不是BaseAdapter

一旦我把它关掉,它就可以正常工作了,不知道为什么我不能使用ArrayAdapter,但我很激动 我的自动完成控件终于开始工作了