[Android-SDK-Japan:991] SimpleAdapterの絞込みに関して

109 views
Skip to first unread message

飯塚康至(エイシーエル)

unread,
Apr 17, 2010, 8:29:02 PM4/17/10
to Android-SDK-Japan
お世話になっています。飯塚です。

リストを表示するアプリを作っていまして、検索機能を実装しました。
リストにはSimpleAdapterを使っていたので、SimpleAdapterで検索するために
下記のようなコードを書きました。

SimpleAdapterはFilterを使うことによって絞り込むことができるようです。
これで一応絞り込めたのですが、完全一致ででないとうまくいきません。

SQLのLikeのように部分一致にする方法をご存知のかたおりましたらご教授いただければと思っています。

文字列の前後に*とかは追加してみたのですが、うまくいきませんでした。

@Override
protected void onNewIntent(Intent intent) {
if (Intent.ACTION_SEARCH.equals(intent.getAction())) {
String query = intent.getStringExtra(SearchManager.QUERY);
//検索処理(query);
Filter filter = simpleAdapter.getFilter();
filter.filter(query);
}
}

よろしくお願いします。

--
このメールは Google グループのグループ「Android-SDK-Japan」の登録者に送られています。
このグループに投稿するには、android-...@googlegroups.com にメールを送信してください。
このグループから退会するには、android-sdk-ja...@googlegroups.com にメールを送信してください。
詳細については、http://groups.google.com/group/android-sdk-japan?hl=ja からこのグループにアクセスしてください。

Kuniaki Suzuki

unread,
Apr 21, 2010, 2:10:28 AM4/21/10
to android-...@googlegroups.com
飯塚さん、
初めまして、鈴木と申します。

あくまで自分の場合で、
飯塚さんのケースに該当するか分からなく、
既に知っていたらすみませんが、

queryを作成する際、
引数の3番目に、「selection」という値があり、ここに
String selection = "DISPLAY_NAME LIKE \"%" + filter + "%\"";
と言ったような値を渡し絞り込めるのですが、これだとLIKEなので
部分一致でも大丈夫です。

※自分は、
http://code.google.com/p/ringdroid/
に公開されているソースの、連絡先を開き、
そこの自分物を入力されたテキストから絞り込むという部分を見て、
このように出来ることを教えられました。

全く見当違いの事を言っていたらすみません、
お役に立てれば幸いです。



2010年4月18日9:29 飯塚康至 <vse...@gmail.com>:
--
......................................................................
★ 星に願いを Fantastic Cat 発売中! ★
iPhone用動画レーベル[08M] <http://www.zerohachi.jp/08M/>
iPhone&Android アプリ <http://www.zerohachi.jp/App/>
───────────────────────────────────
鈴木邦章 / Kuniaki Suzuki
mailto:ku...@zerohachi.jp
tel:03-3989-8879
fax:03-3989-8870
+
株式会社08 -ゼロハチ-
http://www.zerohachi.jp/
170-0014 豊島区池袋1-8-7 SUN池袋1-507

飯塚康至(エイシーエル)

unread,
Apr 21, 2010, 2:54:38 AM4/21/10
to Android-SDK-Japan
鈴木様

お世話になります。飯塚です。

ありがとうございます!下記でやってみます。
うまく行ったらフィードバックします。


On 4月21日, 午後3:10, Kuniaki Suzuki <k...@zerohachi.jp> wrote:
> 飯塚さん、
> 初めまして、鈴木と申します。
>
> あくまで自分の場合で、
> 飯塚さんのケースに該当するか分からなく、
> 既に知っていたらすみませんが、
>
> queryを作成する際、
> 引数の3番目に、「selection」という値があり、ここに
> String selection = "DISPLAY_NAME LIKE \"%" + filter + "%\"";
> と言ったような値を渡し絞り込めるのですが、これだとLIKEなので
> 部分一致でも大丈夫です。
>
> ※自分は、http://code.google.com/p/ringdroid/
> に公開されているソースの、連絡先を開き、
> そこの自分物を入力されたテキストから絞り込むという部分を見て、
> このように出来ることを教えられました。
>
> 全く見当違いの事を言っていたらすみません、
> お役に立てれば幸いです。
>
> 2010年4月18日9:29 飯塚康至 <vse5...@gmail.com>:
> mailto:k...@zerohachi.jp
> tel:03-3989-8879
> fax:03-3989-8870
> +
> 株式会社08 -ゼロハチ-
> http://www.zerohachi.jp/
> 170-0014 豊島区池袋1-8-7 SUN池袋1-507
>
> --
> このメールは Google グループのグループ「Android-SDK-Japan」の登録者に送られています。
> このグループに投稿するには、android-...@googlegroups.com にメールを送信してください。
> このグループから退会するには、android-sdk-ja...@googlegroups.com にメールを送信してください。
> 詳細については、http://groups.google.com/group/android-sdk-japan?hl=jaからこのグループにアクセスしてください。

飯塚康至(エイシーエル)

unread,
Apr 21, 2010, 4:26:06 AM4/21/10
to Android-SDK-Japan
こんにちは、飯塚です。

SimpleCursorAdapterはまだマスターできていないのですが、
SimpleAdapterのソースを見たところ

if (word.toLowerCase().startsWith(prefixString)) {
newValues.add(h);
break;
}
となっていたので、SimpleAdapterでは前方一致で検索するようです。

継承してオーバライドするか、SimpleCursorAdapterで書きなおすかのどちらかで行きたいと思います。
Reply all
Reply to author
Forward
0 new messages