我正在使用listview处理amobile应用。 我的目标是从SQLite数据库中选择数据并将其显示为
Halo3 9.6/10
Call of Duty 5.0/10
我的数据库有我选择的ID,Game_name和Game_score。
现在我的应用程序中显示的内容是
halo 3
9.6/10
Call of Duty
5/10
我确切地知道为什么会发生这种代码。
数据库助手类
public List<String> allDetails(String num) {
List<String> details = new ArrayList<String>();
SQLiteDatabase db = this.getWritableDatabase();
Cursor c;
try{
c = db.rawQuery("SELECT INS,NUM FROM " + TB_numbers + " WHERE ID = '"+ num + "'",null);
if (c == null) return null;
String ins,dnum;
ins="";dnum="";
String[] data=null;
c.moveToFirst();
do{
ins = c.getString(0);
details.add(ins);
dnum=c.getString(1);
details.add(dnum);
}while (c.moveToNext());
c.close();
} catch(
Exception e
)
{
Log.e("tle99", e.getMessage());
}
return details;
}
当我传入&#34; num&#34; ,我将游戏名称和评级都添加到列表中。我想就如何分别返回游戏名称和得分提出建议。我不知道能够立刻返回两个列表,即使我可以......我认为在从两个列表数组填充我的listview时会遇到问题。 所以我的问题更具体地说,我如何使用来自我的数据库中两个不同列的数据填充两个自定义文本视图。
答案 0 :(得分:3)
您需要一个Model类。例如:
public class Rating {
public final String name;
public final String rating;
Rating(String name, String rating) {
this.name = name;
this.rating = rating;
}
}
而不是返回List <String>
返回List <Rating>
。
填写您的评分。
ratings.add(new Rating(ins, dnum));
使用您的姓名和评级:
Rating someRating = ratings.get(index);
Log.v("TAG", "The name: " + someRating.name + " rating: " + someRating.rating);
在现实世界中,您应该使用私有字段。但公众对简单起见更好。