2016-04-26 9 views
0

によって与えられた選択列のクエリを登録しよう列。Androidのsqliteのは、私は、私が選択したい列を含む文字列配列を持つString []型

この配列を列として渡すことができるSQLiteDatabase APIが見つかりません。私がこれまで持っていた唯一の解決策は、セパレータとして,という列を文字列に結合し、それをクエリ文字列に追加してrawQueryを実行することです。

もっと良い解決策はありますか?

EDIT

は、クエリがJOINクエリです。 SQLiteDatabase

+2

'SQLiteQueryBuilder'の' query'メソッドを使うと 'projection'パラメータがあります。 String:返す列のリスト。 nullを渡すとすべての列が返されますが、使用されないストレージからデータを読み取ることは避けてください。 –

+0

私は 'SQLiteQueryBuilder' **が' JOIN'を実行できると聞いています。私はそれを徹底的に調べます。 – totoro

答えて

0

SQLiteQueryBuilderを使用することができますようにあなたはそれを行うことができます。

setTablesJOINを追加し、@RalphBergmannへquery

感謝のprojectionIn引数に文字列の配列を渡します。

3

query()方法は、あなたが探しているもののことであると思わString[] columns引数に取ります。

文字列を,に結合した生のクエリも動作します。これは基本的にはquery()がフードの下で実行するものです。

ああ、私はそれがあまりにも

次に、あなたの最良の選択肢は、おそらくあなた自身を構築しているSQLとrawQuery()でJOINを必要とする言及を忘れてしまいました。 AndroidのSQLiteラッパーAPIはあまりにも柔軟性がありません。

+0

ああ、私はそれに言及するのを忘れても 'JOIN'を含む。 – totoro

+0

私はそう思った:-) – totoro

0

this-

ArrayList<String> dynamicColumnList = new ArrayList<>(); 
//add column dynamically to the list 
String columns[]= dynamicColumnList.toArray(new String[0]); 
sqLiteDatabase.query("TableName",columns,"id",new String[]{id},null,null,null); 
関連する問題