当我将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:我没有注释注释的代码,我看到样式,但所有列表上的数据相同
答案 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);