2015-04-12 25 views
0

我正在使用listview的amobile应用程序。 我的目标是从一个SQLite数据库选择数据和类似使用sqlite3的数据填充多个textview列表

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; 
     } 

当我通过“数”,我加入游戏的名称和评级到列表中。我希望得到有关如何将游戏名称和成绩单独归还的建议。我不知道能够一次返回两个列表,即使我可以...我想我会从两个列表数组中填充我的列表视图时会出现问题。 所以我更具体的问题是,如何使用来自我的数据库的两个不同列中的数据填充两个自定义文本视图。

+0

你可以做的是使用存储条目的HashMap。因此你可以返回两个结果。并为列表视图使用自定义适配器。 (开发一个扩展BaseAdapter,很容易) –

+0

@Joaquin我知道如何做一个列表视图的自定义适配器,但你可以在HAshMap存储条目解释吗? – Liberace

+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); 

在真实的场景中,你可能应该使用私有字段。但公众对简单性更好。

+0

另外,尝试使用像ORMLite这样的ORM会减少很多样板代码。 – Froyo

+0

你的添加方法是什么样的?是否可能不需要通过扩展到一个类来编写一个? – Liberace

+0

@Liberace .add是列表的标准方法。 – VM4