<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".Main" ><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal" ><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:gravity="center"android:text="key" /><EditTextandroid:id="@+id/keys"android:layout_width="100sp"android:layout_height="wrap_content" /><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:gravity="center"android:text="value" /><EditTextandroid:id="@+id/values"android:layout_width="100sp"android:layout_height="wrap_content" /><Buttonandroid:id="@+id/btn"android:layout_width="100sp"android:layout_height="wrap_content"android:text="submit" /></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content" ><ListViewandroid:id="@+id/lv"android:layout_width="match_parent"android:layout_height="wrap_content" /></LinearLayout></LinearLayout>用于填充数据的mytextview.xml:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal" ><TextViewandroid:id="@+id/listkey"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="left" /><TextViewandroid:id="@+id/listvalue"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="300sp" /></LinearLayout>Main.java
package com.app.main;import android.annotation.SuppressLint;import android.app.Activity;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.CursorAdapter;import android.widget.EditText;import android.widget.ListView;import android.widget.SimpleCursorAdapter;public class Main extends Activity {EditText ed1 = null;EditText ed2 = null;Button btn = null;ListView lv = null;SQLiteDatabase db = null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);ed1 = (EditText) this.findViewById(R.id.keys);ed2 = (EditText) this.findViewById(R.id.values);btn = (Button) this.findViewById(R.id.btn);lv = (ListView) this.findViewById(R.id.lv);db = SQLiteDatabase.openOrCreateDatabase(this.getFilesDir().toString()+ "/my.db3", null);btn.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View view) {String key = ed1.getText().toString();String value = ed2.getText().toString();try {insertData(db, key, value);Cursor cursor = db.rawQuery("select * from tb_info", null);inflateListView(cursor);} catch (Exception e) {String sql = "create table tb_info(_id integer primary key autoincrement,db_key varchar(20),db_value varchar(50))";db.execSQL(sql);insertData(db, key, value);Cursor cursor = db.rawQuery("select * from tb_info", null);inflateListView(cursor);}}});}// 向数据库中插入数据private void insertData(SQLiteDatabase db, String key, String value) {db.execSQL("insert into tb_info values (null,?,?)", new String[] { key,value });System.out.println("------------------");}// 向ListView中填充数据@SuppressLint("NewApi")public void inflateListView(Cursor cursor) {SimpleCursorAdapter adapter = new SimpleCursorAdapter(Main.this,R.layout.mytextview, cursor, new String[] { "db_key","db_value" },new int[] { R.id.listkey, R.id.listvalue },CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER);lv.setAdapter(adapter);}@Overrideprotected void onDestroy() {super.onDestroy();if (db != null && db.isOpen()) {db.close();}}}实现的效果:
需要特别指出,在用SimpleCursorAdapter封装Cursor的时候,要求底层数据库表的主键列的列名为_id,因为SimpleCursorAdapter只能识别主键列名为_id的表。
以上就是本文的全部内容,希望能给大家一个参考,也希望大家多多支持脚本之家。