我试图让用户选择一个值,然后在我的数据库中搜索该值,并从包含该值的所有行返回信息。
我尝试了以下操作,但我不确定如何将结果正确返回给用户要查看的其他活动。
Cursor c = ourDatabase.rawQuery("SELECT * FROM FavoriteTable WHERE " + KEY_FAVNAME + " = '" + favoriteWorkoutName + "'", null);
我也试过这个,其中 int 行指定我想在查询时从中获取数据的 KEY_ROW。例如,用户输入最喜欢的锻炼的名称,然后在数据库中搜索包含该名称的所有行,然后返回 KEY_ROWS 1、2 和 3(对应于锻炼、代表等)。但是,这只从一行返回一个行值。
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 的类型更改为 Cursor”,它已经是......或者“将 'GetFavoriteData' 的返回类型更改为 Cursor”,这也已经是。
此外,当我确实没有错误时,我不确定如何使用返回的数据并将其插入到我的 TextView 中。它不允许我设置文本(listCursor)。
理想情况下,我需要从每个返回的行中获取信息作为单独的字符串,以便我可以在 TextViews 中以我需要的方式显示它们。
在我的活动中:
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);
}