android:将自定义列表连接到数据库

时间:2012-03-28 08:25:28

标签: android

我有自定义列表的代码。

my_list.xml:

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

     <TextView android:id="@+id/text1"
         android:textSize="16px"
         android:textStyle="bold"
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"/>

     <TextView android:id="@+id/text2"
         android:textSize="12px"
         android:textStyle="italic"
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"/>
</LinearLayout>

和活动:

public class ZcustListActivity extends ListActivity {


//db Work
SQLiteDatabase db;
String SQL;
ArrayList<String> db_results=null;


    private SimpleAdapter notes;

    ArrayList<HashMap<String,String>> list = new ArrayList<HashMap<String,String>>();

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

    //db Work
    this.db = this.openOrCreateDatabase("DEMO", MODE_PRIVATE, null);
    this.db.execSQL("CREATE TABLE IF NOT EXISTS MEN(A VARCHAR,B VARCHAR,C VARCHAR);");
    this.db.execSQL("delete from MEN;");
    db.execSQL("INSERT INTO MEN(A,B,C) VALUES('AA1','BB1','CC1');");
    db.execSQL("INSERT INTO MEN(A,B,C) VALUES('DD2','EE2','FF2');");


        notes = new SimpleAdapter(
                this, 
                list,
                R.layout.my_list,
                new String[] { "line1","line2" },
                new int[] { R.id.text1, R.id.text2 }  );
       setListAdapter( notes );

      HashMap<String,String> item = new HashMap<String,String>();
      item.put( "line1","i am row 1" );
      item.put( "line2","i am row 2" );
      list.add( item );
       notes.notifyDataSetChanged();
    }
}

我添加了我的数据库工作 - 但如何将其合并?

我是Android的新手,它对我不起作用......

2 个答案:

答案 0 :(得分:2)

我猜你已经有了一个DBManager类。使用SimpleCursorAdapter:

在onCreate中调用populateList方法
 private DBManager dbM = new DBManager();
 private Cursor c;

 public void populateList(){
       dbM.open();
       c = this.db.query(MEN, new String[] {"line1", "line2"
            }, null, null, null, null, null);
   startManagingCursor(c);

   String[] from = new String[]{"line1","line2" };

       int[] to = new int[]{R.id.text1, R.id.text2};

SimpleCursorAdapter notes = 
        new SimpleCursorAdapter (this, R.layout.list_row, c, from, to);
    setListAdapter(notes);

}
 }

此外,您需要为list_row创建一个单独的视图(在SimpleCursorAdapter构造函数中使用。)所以定义它(您想要的任何布局,在有问题的情况下,它将是一个带有2个textViews的LinearLayout)您需要将数据放入表格的每一行。

答案 1 :(得分:-1)