Android ArrayAdapter股票筛选显示错误的元素

Android ArrayAdapter股票筛选显示错误的元素,android,listview,android-adapter,Android,Listview,Android Adapter,我已经为我的自定义类扩展了ArrayAdapter。我的类重写toString(),并返回我要用于搜索查询的字段 这是我的筛选代码: productItemAdapter.getFilter().filter(filterText.toLowerCase()) 这是我的toString()代码: 返回name.toLowerCase() 过滤正在工作(返回正确数量的元素),但却是错误的元素。它总是显示列表中的第一个元素,而不是与搜索匹配的元素…我有完全相同的问题,我假设(和我一样)您在尝试实现此

我已经为我的自定义类扩展了ArrayAdapter。我的类重写
toString()
,并返回我要用于搜索查询的字段

这是我的筛选代码:

productItemAdapter.getFilter().filter(filterText.toLowerCase())

这是我的
toString()
代码:

返回name.toLowerCase()


过滤正在工作(返回正确数量的元素),但却是错误的元素。它总是显示列表中的第一个元素,而不是与搜索匹配的元素…

我有完全相同的问题,我假设(和我一样)您在尝试实现此功能时没有阅读文档

我将我的对象数组传递给ArrayAdapter,然后将数组传递给超级构造函数

我犯的错误是:我存储了对传入数组的引用,并使用数组来绘制
getView()
方法中的项:

 public SimpleAdapter( Context context, List< MyType > values )
 {
    super( context, R.layout.rowlayout, values );
    this.context = context;
    this.values = values;
 }

  @Override
  public View getView( int position, View convertView, ViewGroup parent )
  {
    // ...
    MyType myType = values.get( position );
    // ...
  }
在事后看来,这一点是显而易见的


-(e)

不要害怕发布适配器的代码。谢谢您的解决方案!在实现自定义适配器扩展ArrayAdapter并使用SearchView进行筛选时有效。
  MyType myType = getItem( position );