本当に単純な解決策で完全にn00bの質問になるだろうが、私はコンテンツプロバイダーを通じてアクセスしているアプリケーションにSQLite dbを持っている。where節を使用しようとするとコンテンツリゾルバ.queryの問題が発生する
アクティビティの1つでは、イメージへのパスと(itemTable)への外部キーを含むテーブル(picturesTable)の1つを照会しようとしています。
私はpictureTableに保存された外部キーであるitemTableの_idフィールド(によって返された画像をフィルタリングするクエリをしたい。
テストなくなり、私はただのTextViewで返されたパスを表示しています。文字列はItemId
がありますintentExtraとして前のアクティビティから渡される。
Uri imgUri = mProvider.CONTENT_URI;
String[] columns = mDbHelper.ALL_IMG_COLUMNS;
String selection = mDbHelper.IMG_ITEM_ID;
String[] selectionArgs = new String[]{ItemId};
String groupBy = null;
Cursor imgCursor = getContentResolver().query(imgUri, columns,
selection , selectionArgs, groupBy);
String imgPath = "";
assert imgCursor != null;
imgCursor.moveToFirst();
do {
imgPath += imgCursor.getString(
imgCursor.getColumnIndex(mDbHelper.IMG_PATH)) + "\n";
imgPath += "Image ID " + imgCursor.getString(
imgCursor.getColumnIndex(mDbHelper.IMG_TREE_ID)) + "\n" + "\n";
} while (imgCursor.moveToNext());
imgCursor.close();
tv.setText(imgPath);
私が午前問題は、現在、そのだけでpicturesTableの最後の項目を返すということです。
私はを変更した場合〜mDbHelper.IMG_ITEM_ID + " = ?"
、実行中にアプリがクラッシュする
selection
とselectionArgs
〜null
を予想通りに変更すると、返されたアイテムがすべて取得されます。
私がこれを解決するために何ができるかについてのアドバイスは、現在受け入れられているでしょう、今私は夢中になるでしょう!
エミュレータ「app restarted」に@pskinkダイアログが表示されます。 Logcatは、IMG_PATHフィールドを取得しているカーソル行を指しています。 – AvieRose
dumpCursorがすべての予期された列を表示しています – AvieRose