私はListView
によって支えられていArrayAdapter<String>
ます。次のような内容:
- 309
- C309
- 309
- C309
- 309N
私が実行....getFilter().filter("309")
した場合:私のアダプターで結果は次のとおりです。
- 309
- 309
- 309N
基本的に、新しい文字列の先頭に一致するコンテンツのみが返されます。部分文字列の一致があるすべての文字列を返したいので、これは期待どおりに機能するのでしょうか?
前もって感謝します、ピーター
私はListView
によって支えられていArrayAdapter<String>
ます。次のような内容:
私が実行....getFilter().filter("309")
した場合:私のアダプターで結果は次のとおりです。
基本的に、新しい文字列の先頭に一致するコンテンツのみが返されます。部分文字列の一致があるすべての文字列を返したいので、これは期待どおりに機能するのでしょうか?
前もって感謝します、ピーター
はい、これは予想される動作です (私が知る限り)。ArrayAdapter.java
の 483 行目に、これがあります。
次に、文字列を単語に分割し、それぞれに対して startsWith() を実行します。if (valueText.startsWith(prefixString)) {
String メソッドを使用する必要がありますstartsWith()
。そのためのJavadocページは次のとおりです。
http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html#startsWith(java.lang.String )
編集:したがって、ArrayAdapter のコンテキストでは、各値をループして、startsWith()
メソッドと一致するかどうかを確認する必要があります。