ユーザーに値を選択させてから、データベースでその値を検索し、その値を含むすべての行から情報を返そうとしています。
次のことを試しましたが、結果を他のアクティビティに正しく返してユーザーに表示する方法がわかりません。
Cursor c = ourDatabase.rawQuery("SELECT * FROM FavoriteTable WHERE " + KEY_FAVNAME + " = '" + favoriteWorkoutName + "'", null);
また、これを試しました。int行は、クエリ時にデータを取得するKEY_ROWを指定しています。たとえば、ユーザーはお気に入りのワークアウトの名前を入力し、その名前を含むすべての行をデータベースで検索してから、KEY_ROWS 1、2、および3(Exercise、Repsなどに対応)を返します。ただし、これは1つの行から1つの行の値のみを返します。
int row = 1;
Cursor c = ourDatabase.rawQuery("SELECT * FROM FavoriteTable WHERE " + KEY_FAVNAME + " = '" + favoriteWorkoutName + "'", null);
do{c.moveToNext();
String data = c.getString(row);
return data;
}while (row <= 3);
助言がありますか?
* *編集:
私はすでにそのような活動に何かを持っていました。これが私が持っているものです。しかし、エラーが発生し、「listCursorのタイプをカーソルに変更する」または「「GetFavoriteData」の戻りタイプをカーソルに変更する」のいずれかを要求されます。これもすでに存在します。
また、エラーが発生しないようにした場合、返されたデータを使用してTextViewに挿入する方法がわかりません。setText(listCursor)はできません。
理想的には、返された各行から個別の文字列として情報を取得して、TextViewで必要な方法でそれらを表示できるようにする必要があります。
私の活動では:
String favoriteWorkoutName = cfdName.getText().toString();
ExerciseDatabase choosefavorite = new ExerciseDatabase(WorkMeOutActivity.this);
try {
choosefavorite.open();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Cursor listCursor = choosefavorite.GetFavoriteData(favoriteWorkoutName);
choosefavorite.close();
私のDBHelperクラスで:
public Cursor GetFavoriteData(String favoriteWorkoutName){
return ourDatabase.rawQuery("SELECT * FROM FavoriteTable WHERE " + KEY_FAVNAME + " = '" + favoriteWorkoutName + "'", null);
}