ArrayAdapter <string>过滤器仅匹配单词</string>的开头

时间:2012-07-19 16:18:22

标签: android

我有一个由ListView支持的ArrayAdapter<String>。内容如:

  • 309
  • C309
  • A 309
  • A C309
  • A 309N

如果我在我的适配器上执行:....getFilter().filter("309"),结果是:

  • 309
  • A 309
  • A 309N

基本上只返回新字符串开头匹配的内容。只是想知道这是否按预期工作,因为我想返回有子字符串匹配的所有字符串?

先谢谢,彼得

2 个答案:

答案 0 :(得分:2)

是的,这是预期的行为(据我所知) 在ArrayAdapter.java的第483行,你会发现:if (valueText.startsWith(prefixString)) {
然后它将字符串拆分为单词,并对每个字符串执行startsWith()。

答案 1 :(得分:-1)

您应该使用String方法startsWith()。这是它的Javadoc页面:

http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html#startsWith(java.lang.String

编辑:因此,在ArrayAdapter的上下文中,您只需遍历每个值并检查是否与startsWith()方法匹配。