2

私はListViewによって支えられていArrayAdapter<String>ます。次のような内容:

  • 309
  • C309
  • 309
  • C309
  • 309N

私が実行....getFilter().filter("309")した場合:私のアダプターで結果は次のとおりです。

  • 309
  • 309
  • 309N

基本的に、新しい文字列の先頭に一致するコンテンツのみが返されます。部分文字列の一致があるすべての文字列を返したいので、これは期待どおりに機能するのでしょうか?

前もって感謝します、ピーター

4

2 に答える 2

3

はい、これは予想される動作です (私が知る限り)。ArrayAdapter.java
の 483 行目に、これがあります。 次に、文字列を単語に分割し、それぞれに対して startsWith() を実行します。if (valueText.startsWith(prefixString)) {

于 2013-04-25T16:57:28.717 に答える
-1

String メソッドを使用する必要がありますstartsWith()。そのためのJavadocページは次のとおりです。

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

編集:したがって、ArrayAdapter のコンテキストでは、各値をループして、startsWith()メソッドと一致するかどうかを確認する必要があります。

于 2012-07-19T17:47:35.323 に答える