-1

我試圖獲取存儲在SQLite數據庫中的一些數據並將其顯示在自定義列表視圖中。使用SimpleCursorAdapter的自定義ListView

文件Settle.java

public class Settle extends ListActivity { 
    SQLiteDatabase DB; 
    Cursor cur; 
    SimpleCursorAdapter mAdapter; 

    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.settle); 

     DB = openOrCreateDatabase("MoneyManager.db",MODE_PRIVATE,null); 

     cur = DB.rawQuery("SELECT * FROM Money",null); 

     String[] columns = new String[] {cur.getString(cur.getColumnIndex("name")),Double.toString(cur.getDouble(cur.getColumnIndex("amount")))};   
     int[] to = new int[] { R.id.settle_name,R.id.settle_amount}; 

     SimpleCursorAdapter mAdapter = new SimpleCursorAdapter(this, R.layout.settle_entry, cur, columns, to); 

     this.setListAdapter(mAdapter); 
    } 

    protected void onDestroy() { 
     super.onDestroy(); 
     DB.close(); 
    } 
} 

文件Settle_entry.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" > 

    <TextView 
     android:id="@+id/settle_name" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="28dip" /> 

    <TextView 
     android:id="@+id/settle_amount" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="28dip" /> 

</LinearLayout> 

database schema

  • 名稱 - VARCHAR
  • 金額 - REAL
  • 原因 - VARCHAR

我如何去從SQLite數據庫提取數據,並在自定義ListView顯示呢?

回答

0

假設已創建數據庫和填充,你的代碼應該通過改變柱陣列只是工作:

String[] columns = new String[] {"name","amount"}; 

無論如何,我建議你去實現一些機制(即一個的AsyncTask)加載光標在後臺。

+0

謝謝@rciovati ...必須在代碼上工作一點,並得到它的工作! – arnabghosal 2012-07-30 20:41:55

相關問題