2015-04-12 24 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