我目前正在一个活动的数据库中的一个表中的两个单独的TextView中显示标题名称和描述文本。我还使用两个查询来返回标题和描述的字符串,如下面的代码所示。
有没有更好的方法,我认为我可以从单个查询返回标题和描述,但我不确定如何显示它。
致电代码:
beachName = dbBeachHelper.getBeachName(passedVar);
beachText = dbBeachHelper.getBeachText(passedVar);
查询:
public String getBeachName(String id) {
String[] args = {id};
Cursor c = getReadableDatabase().rawQuery("SELECT _id, BeachName FROM Beach WHERE _id=?", args);
if(c.moveToNext()){
return(c.getString(c.getColumnIndex("BeachName")));
}
c.close();
return id;
}
public String getBeachText(String id) {
String[] args = {id};
Cursor c = getReadableDatabase().rawQuery("SELECT _id, BeachText FROM Beach WHERE _id=?", args);
if(c.moveToNext()){
return(c.getString(c.getColumnIndex("BeachText")));
}
c.close();
return id;
}
非常感谢任何帮助。
干杯,
麦克
更新
我想返回一个光标,但正如我上面说的那样,当我拿回它时,我不知道该怎么做。如何将光标分成两个变量,然后我可以用它来填充TextViews ???
答案 0 :(得分:1)
我坚持要更好地返回Cursor而不是String,
public Cursor getData(String id) {
String[] args = {id};
return getReadableDatabase().rawQuery("SELECT _id, BeachName, BeachText FROM Beach WHERE _id=?", args);
}
然后你可以从光标中获取值。
<强>更新强>
Cursor c = helper.getData("your id");
c.moveToFirst();
if(c.getCount() > 0){
txtName.setText(c.getString(c.getColumnIndex("BeachName")));
txtText.setText(c.getString(c.getColumnIndex("BeachText")));
}
c.close();
答案 1 :(得分:1)
此方法返回两个String
类型对象的数组。第一个是BeachName
,第二个是BeachText
:
public String[] getBeachNameText(String id)
{
String[] args = { id };
String[] result = new String[2];
Cursor c = getReadableDatabase().rawQuery("SELECT _id, BeachName, BeachText FROM Beach WHERE _id=?", args);
if (c.moveToNext())
{
result[0] = c.getString(c.getColumnIndex("BeachName"));
result[1] = c.getString(c.getColumnIndex("BeachText"));
}
c.close();
return result;
}