2012-04-13 69 views
0

我在Android中創建了一個簡單的數據庫。它有3列RowID,UPCCode和Title。我已經成功使用YouTube上的NewBoston教程將數據輸入數據庫。現在,我要的是限制我的數據庫10個記錄(例如最近10個搜索),我想顯示他們到一個新的活動一個ListView。限制條目(無,行),並檢索記錄創建一個ListView

我有關於如何實現的問題,不能找到很好的幫助..下面貼的代碼...

TenSearches.java

package com.rhuf.brandscan; 

import android.content.ContentValues; 
import android.content.Context; 
import android.database.Cursor; 
import android.database.SQLException; 
import android.database.sqlite.SQLiteDatabase; 

public class TenSearches { 
    public static final String KEY_ROWID="ID"; 
    public static final String KEY_UPC="upccode"; 
    public static final String KEY_TITLE="title"; 

    public static final String DATABASE_NAME="BrandscanDB"; 
    public static final String DATABASE_TABLE="ScanTable"; 
    public static final int DATABASE_VERSION=1; 

    private DBHelper helper; 
    private final Context context; 
    private SQLiteDatabase BrandScanDB; 

    public TenSearches(Context c) 
    { 
     context = c; 
    } 

    public TenSearches open() throws SQLException 
    { 
     helper = new DBHelper(context); 
     BrandScanDB = helper.getWritableDatabase(); 
     return this; 
    } 

    public void close() 
    { 
     helper.close(); 
    } 

    public long createEntry(String upc, String title) 
    { 
     ContentValues cv = new ContentValues(); 
     cv.put(KEY_UPC, upc); 
     cv.put(KEY_TITLE, title); 
     return BrandScanDB.insert(DATABASE_TABLE, null, cv); 
    } 

    public String getDataUPC() 
    { 
     String columns[]=new String[]{KEY_ROWID,KEY_UPC,KEY_TITLE}; 
     Cursor c = BrandScanDB.query(DATABASE_TABLE, columns, null, null, null, null, KEY_ROWID); 
     String result; 

     int iRow = c.getColumnIndex(KEY_ROWID); 
     int iUPC = c.getColumnIndex(KEY_UPC); 
     int iTitle = c.getColumnIndex(KEY_TITLE); 

     //Make a listArray or Object Array from the Database entries 
     return null; 
    } 
} 

DBHelper.java

package com.rhuf.brandscan; 

import android.content.Context; 
import android.database.sqlite.SQLiteDatabase; 
import android.database.sqlite.SQLiteOpenHelper; 
import com.rhuf.brandscan.TenSearches; 

public class DBHelper extends SQLiteOpenHelper{ 

    public DBHelper(Context context) { 
     super(context,TenSearches.DATABASE_NAME,null,TenSearches.DATABASE_VERSION); 
     // TODO Auto-generated constructor stub 
    } 

    @Override 
    public void onCreate(SQLiteDatabase db) { 
     // TODO Auto-generated method stub 
     db.execSQL("CREATE TABLE " +TenSearches.DATABASE_TABLE +" ("+ 
       TenSearches.KEY_ROWID +" INTEGER PRIMARY KEY AUTOINCREMENT, " + 
       TenSearches.KEY_UPC +" TEXT NOT NULL, " + 
       TenSearches.KEY_TITLE + " TEXT NOT NULL);"); 
    } 

    @Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
     // TODO Auto-generated method stub 
     db.execSQL("DROP TABLE IF EXISTS " + TenSearches.DATABASE_TABLE); 
     onCreate(db); 
    } 

} 

回答

1

不要僅爲10個條目使用數據庫。製作最後十個條目(一個隊列)的列表,並將其序列化爲一個文件。 DB是用於許多,許多條目和問題的大數據量的原因做,但你想只存儲了幾行。

+0

確定我沒有完全讀它,讓我來試試您的解決方案,希望我能夠做得出來 – 2012-04-13 09:43:37

+0

我能大部分工作了,仍然無法創建序列化文件:■但由於:d – 2012-04-13 18:47:33