2012-01-13 44 views
1

編集テキストに入力された文字に応じてリストビューをフィルタするアプリケーションに検索バーを実装したいと思います。ここで私は、データベースからリストビューを移入していますので、私は、Androidアプリケーションにカスタム検索バーを追加する

enter image description here

は、だから私は、私はsqliteのステートメントを変更する必要が推測するように、タイトルの要素をフィルタリングする設計のように、実際に持っているものです。

そして、私は2つの質問があります。

1.Whichは、カスタム検索バーを実装するための最良の方法である:エディットテキストにtextwatcherを追加し、sqliteのステートメント毎回ユーザーを変更するには、文字を入力しますか?

2.ユーザーから入力された文字に応じてsqliteでソートする方法。ユーザーがAを押すと、最初か最後かにかかわらず、その文字を持つすべてのアイテムを表示したいと思います。

答えて

2

これを達成するためには、どのような種類のAdapterを使用していても非常に簡単です。まずTextWatcherを作成してEdit Textに追加する必要があります。あなたがそれらをクリアする必要があるので、あなたが得ることができるあなたのデータを格納するためにあなたがArrayListまたはLists他の種類を使用している場合は、もう一度、あなたのデータを取得する前に

String sql = "SELECT title FROM cards WHERE title LIKE '%"+someString+"%'" 
//where someString is `Charsequence` which you get in your onAfterTextChanged() 

:あなたのonAfterTextChanged()あなたのようなあなたの新しいSQL文を作成することができますよりも、新しいデータそして、あなたは単にadapter.notifySetDataChanged()と呼ぶことができます。そしてそれはうまくいくはずです。少なくともこれは私がこれをやっている方法です。多分それは最良の方法ではないかもしれませんが、機能しています。

0

データベースのサイズは?それは、私はシンプルなSQLはあなたのために働くべきだと思い、その後BIGいずれでもない場合:

SELECT Column1, Column2 
FROM myTable 
WHERE myColumn LIKE 'somecharacter%' 

、ユーザが入力しているか、特定のボタンのユーザープレスのようないくつかの他のロジックを使用することができますしながら、あなたは、DBに呼び出すことができます。

関連する問題