android:当我将listview连接到数据库时,我丢失了样式

时间:2012-03-27 12:30:02

标签: android listview

当我将listview连接到数据库时,我丢失了listview样式。

当我添加样式时,我在所有列表视图中看到相同的数据。

public void update_list(String NN) {
        //HashMap<String,String> item = new HashMap<String,String>();

       db_results = new ArrayList<String>();
       Cursor cursor = db.rawQuery(NN, null);
        while(cursor.moveToNext()) {
            //item.put( "line1",String.valueOf(cursor.getString(cursor.getColumnIndex("A"))));
              //item.put( "line2",String.valueOf(cursor.getString(cursor.getColumnIndex("B"))));
              //item.put( "line3",String.valueOf(cursor.getString(cursor.getColumnIndex("C"))));
              //list.add( item );
             db_results.add(String.valueOf(cursor.getString(cursor.getColumnIndex("A"))) + "\n" +cursor.getString(cursor.getColumnIndex("B")) + "\n" +cursor.getString(cursor.getColumnIndex("C")));
         }
        cursor.close();
               setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,db_results)); 

option1:像这段代码一样,我看到了列表中的数据,但是我丢失了样式。

选项2:我没有注释注释的代码,我看到样式,但所有列表上的数据相同

1 个答案:

答案 0 :(得分:0)

创建自定义布局并使用SimpleCursorAdapter填充它会更好。

<强> threelinelayout.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:gravity="center"
    android:orientation="vertical" >
    <TextView
            android:id="@+id/ListItem1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    <TextView
            android:id="@+id/ListItem2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    <TextView
            android:id="@+id/ListItem3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
</LinearLayout>

适配器代码

Cursor mCursor = db.rawQuery(NN, null); 
this.startManagingCursor(cursor);

String[] from = new String[] { "A", "B", "C" };
int[] to = new int[] { R.id.ListItem1, R.id.ListItem2, R.id.ListItem3 };
SimpleCursorAdapter mAdapter = new SimpleCursorAdapter(getActivity(),
            R.layout.threelinelayout, mCursor, from, to);
setListAdapter(mAdapter);