-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