2016-05-29 20 views
0

私の問題を説明しようとします。バーコードを読み込んで保存するためのZxingライブラリをベースにした小さなプロジェクトを作成しました。今度は、最初のリストビューを作成して、動作中のSQLiteデータベースの要素を含んでいます。 はここに今、私はActivityクラスでListViewコントロールを移入する方法がわからない、私のソースコードAndroid populate Sqlite DBのListView

DBAdapter

public boolean insertProduct(String barcode, int quantity) 
{ 
    ContentValues initialValues = new ContentValues(); 
    initialValues.put(KEY_BARCODE, barcode); 
    initialValues.put(KEY_QUANTITY, quantity); 
    try { 
     db.insert(DATABASE_TABLE, null, initialValues); 
     return true; 
    } 
    catch(Exception ex){ 
     return false; 
    } 
} 

public boolean deleteProduct(String barcode) 
{ 
    return db.delete(DATABASE_TABLE, KEY_BARCODE + "=" + barcode, null) > 0; 
} 


public Cursor getAllProducts() 
{ 
    return db.query(DATABASE_TABLE, new String[] {KEY_ROWID, KEY_BARCODE, KEY_QUANTITY}, null, null, null, null, null); 
} 

の抽出物です。誰か助けてくれますか?

答えて

1

getAllProducts()はカーソルを返すので、カーソルアダプタを使用できます。ここでは、アクティビティクラスのためのいくつかのサンプルコードは次のとおりです。ここで

Cursor cursor = db.query(DATABASE_TABLE, 
    new String[] {KEY_ROWID, KEY_BARCODE, KEY_QUANTITY}, null, null, null, null, null); 

CursorAdapter listAdapter = new SimpleCursorAdapter(this, 
    _id_of_your_item_layout, // You'll have to make your own item layout 
    cursor, 
    new String[] {KEY_ROWID, KEY_BARCODE, KEY_QUANTITY}, 
    new int[]{id_of_textview_1, id_of_textview_2, id_of_textview_3}, 0); 

は内訳です:

CursorAdapter listAdapter = new SimpleCursorAdapter(Context context, 
    int layoutID, 
    Cursor cursor, 
    String[] {FromColumns}, 
    int[] {toViews}, int flags); 

それはあなたがあなた自身の項目のレイアウトを使用する必要がないことは注目に値します。それは、それぞれのリスト項目にいくつのフィールドが必要か、どのように表示するかによって異なります。 Androidには、あなたが使うことができるように焼き尽くされたレイアウトの束があります。これらのレイアウトをチェックしたい場合は、linkです。