将Android自动完成中的选择转换为字符串

Pat*_*ick 3 android autocomplete

我刚刚使用在线Web服务实现了文本字段的自动完成,基于Stackoverflow上的这个答案: ArrayAdapter在AutoCompleteTextAdapter中从Webservice后期更新

使用一个ArrayAdapter<User> implements Filterable,我已经设法自动完成建议我按预期输入. User是一个Java Bean,其中包含建议(年龄,名称,...)中显示的信息.

当我选择建议时,自动填充字段将填充"错误"数据 - 使用该toString()方法,而不是bean的"name"属性.

我的问题是:我可以覆盖(在适配器中)一个方法,它允许我指定如何转换bean,以便为AutoCompleteTextView返回正确的属性? (理想情况下,不应更改User.toString())

谢谢!

Joh*_*ook 8

不需要子类化AutoCompleteTextView并覆盖该convertSelectionToString方法.通过覆盖convertResultToString自定义Filter中的方法(已经是子类),可以实现同样的目的ArrayAdapter.

我有同样的问题:我ArrayAdapter的自定义对象的toString()实现不是我可以控制的.我实现了这样的方法:

// In custom Filter implementation

@Override
public CharSequence convertResultToString(Object result) {
   if(result instanceof MyCustomClass) {
      return ((MyCustomClass) result).getAttribute("name");
   }

   return super.convertResultToString(result);
}
Run Code Online (Sandbox Code Playgroud)