Android 使用sqlite3中的数据填充多个textview列表
我正在使用listview开发amobile应用程序。 我的目标是从SQLite数据库中选择数据,并像Android 使用sqlite3中的数据填充多个textview列表,android,Android,我正在使用listview开发amobile应用程序。 我的目标是从SQLite数据库中选择数据,并像 Halo3 9.6/10 Call of Duty 5.0/10 我的数据库有我选择的ID、游戏名称和游戏分数 现在我的应用程序中显示的是 halo 3 9.6/10 Call of Duty 5/10 我知道为什么会发生这种情况,看看这段代码 数据库助手类 public List<String> allDetails(String num) {
Halo3 9.6/10
Call of Duty 5.0/10
我的数据库有我选择的ID、游戏名称和游戏分数
现在我的应用程序中显示的是
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;
}
public列出所有详细信息(String num){
列表详细信息=新建ArrayList();
SQLiteDatabase db=this.getWritableDatabase();
光标c;
试一试{
c=db.rawQuery(“从“+TB_numbers+”中选择INS,NUM,其中ID=”“+NUM+””,null);
如果(c==null)返回null;
串ins,dnum;
ins=“”;dnum=“”;
字符串[]数据=null;
c、 moveToFirst();
做{
ins=c.getString(0);
详细信息。加载项;
dnum=c.getString(1);
详细信息。添加(dnum);
}而(c.moveToNext());
c、 close();
}抓住(
例外情况e
)
{
Log.e(“tle99”,e.getMessage());
}
退货详情;
}
当我传入“num”时,我会将游戏名称和等级添加到列表中。我想就如何返回游戏名称和分数分别提供建议。我不知道是否能够一次返回两个列表,即使我可以…我认为从两个列表数组填充listview时会遇到问题。
因此,我的问题更具体地说是,如何使用数据库中两个不同列的数据填充两个自定义文本视图。您需要一个模型类。例如:
public class Rating {
public final String name;
public final String rating;
Rating(String name, String rating) {
this.name = name;
this.rating = rating;
}
}
而不是返回列表
返回列表
像这样填充您的评级
ratings.add(new Rating(ins, dnum));
要使用您的姓名和评级:
Rating someRating = ratings.get(index);
Log.v("TAG", "The name: " + someRating.name + " rating: " + someRating.rating);
在真实场景中,您可能应该使用私有字段。但是public更简单。您需要一个模型类。例如:
public class Rating {
public final String name;
public final String rating;
Rating(String name, String rating) {
this.name = name;
this.rating = rating;
}
}
而不是返回列表
返回列表
像这样填充您的评级
ratings.add(new Rating(ins, dnum));
要使用您的姓名和评级:
Rating someRating = ratings.get(index);
Log.v("TAG", "The name: " + someRating.name + " rating: " + someRating.rating);
在真实场景中,您可能应该使用私有字段。但是public更简单。您需要一个模型类。例如:
public class Rating {
public final String name;
public final String rating;
Rating(String name, String rating) {
this.name = name;
this.rating = rating;
}
}
而不是返回列表
返回列表
像这样填充您的评级
ratings.add(new Rating(ins, dnum));
要使用您的姓名和评级:
Rating someRating = ratings.get(index);
Log.v("TAG", "The name: " + someRating.name + " rating: " + someRating.rating);
在真实场景中,您可能应该使用私有字段。但是public更简单。您需要一个模型类。例如:
public class Rating {
public final String name;
public final String rating;
Rating(String name, String rating) {
this.name = name;
this.rating = rating;
}
}
而不是返回列表
返回列表
像这样填充您的评级
ratings.add(new Rating(ins, dnum));
要使用您的姓名和评级:
Rating someRating = ratings.get(index);
Log.v("TAG", "The name: " + someRating.name + " rating: " + someRating.rating);
在真实场景中,您可能应该使用私有字段。但是public更简单。您可以使用HashMap存储条目。因此,您可以返回两个结果。并为列表视图使用自定义适配器。(开发一个扩展BaseAdapter,非常简单)@Joaquin我知道如何为列表视图创建自定义适配器,但您能否详细说明存储条目的HAshMap?映射是用于保存条目集合的数据结构。每个条目都有一个键和一个值。就这些。您没有字符串列表,而是有一个条目映射,每个条目包含一个键(用于标识条目)和一个值(与该键关联的数据)。键和值可以是任何类型。它们是通用集合。您可以使用HashMap存储条目。因此,您可以返回两个结果。并为列表视图使用自定义适配器。(开发一个扩展BaseAdapter,非常简单)@Joaquin我知道如何为列表视图创建自定义适配器,但您能否详细说明存储条目的HAshMap?映射是用于保存条目集合的数据结构。每个条目都有一个键和一个值。就这些。您没有字符串列表,而是有一个条目映射,每个条目包含一个键(用于标识条目)和一个值(与该键关联的数据)。键和值可以是任何类型。它们是通用集合。您可以使用HashMap存储条目。因此,您可以返回两个结果。并为列表视图使用自定义适配器。(开发一个扩展BaseAdapter,非常简单)@Joaquin我知道如何为列表视图创建自定义适配器,但您能否详细说明存储条目的HAshMap?映射是用于保存条目集合的数据结构。每个条目都有一个键和一个值。就这些。您没有字符串列表,而是有一个条目映射,每个条目包含一个键(用于标识条目)和一个值(与该键关联的数据)。键和值可以是任何类型。它们是通用集合。您可以使用HashMap存储条目。因此,您可以返回两个结果。并为列表视图使用自定义适配器。(开发一个扩展BaseAdapter,非常简单)@Joaquin我知道如何为列表视图创建自定义适配器,但您能否详细说明存储条目的HAshMap?映射是用于保存条目集合的数据结构。每个条目都有一个键和一个值。就这些。您没有字符串列表,而是有一个条目映射,每个条目包含一个键(用于标识条目)和一个值(与该键关联的数据)。键和值可以是任何类型。它们是泛型集合。此外,尝试类似ORMLite的ORM将减少大量样板代码。您的add方法是什么样的?仅仅扩展到一个类就可以不写一个吗?@Liberace.add是List的标准方法。另外,尝试类似ORMLite的ORM会减少很多样板代码。你的add方法是什么样的?仅仅扩展到一个类就可以不写一个吗?@Liberace.add是List的标准方法。另外,尝试类似ORMLite的ORM会减少很多样板代码。你的add方法是什么样的?有可能不需要一个接一个地写吗