我有自定义列表的代码。
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>
和 Activity :
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 新手,它不适合我......
最佳答案
我猜您已经有了一个 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 创建一个单独的 View (在 SimpleCursorAdapter 构造函数中使用。)因此定义它(您想要的任何布局都可以,在有问题的情况下,它将是一个带有 2 个 TextView 的 LinearLayout)使用您需要放入表的每一行的数据。
关于android:将自定义列表连接到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9903690/