SimpleCursorAdapter是一个简单的adapter,提供数据库Cursor到TextView的映射。

在实际开发过程中,除了TextView外,往往还需要依赖于数据库数据的其它的组件。

通过继承SimpleCursorAdapter,重写bindView(View view, Context context, Cursor cursor)来实现

示例代码

Main.java

package dyingbleed.iteye;import android.app.ListActivity;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.SimpleCursorAdapter;public class Main extends ListActivity {private MySQLiteOpenHelper sqlite;private MyListViewAdapter adapter;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);                sqlite = new MySQLiteOpenHelper(this);                initListView();    }        @Overrideprotected void onDestroy() {    sqlite.close();super.onDestroy();}        private void initListView() {    SQLiteDatabase readableDB = sqlite.getReadableDatabase();    Cursor cursor = readableDB.query(MySQLiteOpenHelper.TABLE_NAME, null, null, null, null, null, null);        adapter = new MyListViewAdapter(this, cursor);        setListAdapter(adapter);    }private class MyListViewAdapter extends SimpleCursorAdapter {    public MyListViewAdapter(Context context, Cursor c) {    super(context, R.layout.item, c, new String[] {MySQLiteOpenHelper.VOLUMN_NAME}, new int[] {R.id.item_NameTextView});    }    @Override    public void bindView(View view, Context context, Cursor cursor) {    super.bindView(view, context, cursor);    final int id = cursor.getInt(cursor.getColumnIndex(MySQLiteOpenHelper.VOLUMN_ID));    Button delete = (Button) view.findViewById(R.id.item_DeleteButton);    delete.setOnClickListener(new View.OnClickListener() {        @Override    public void onClick(View v) {    SQLiteDatabase writableDB = sqlite.getWritableDatabase();    writableDB.delete(MySQLiteOpenHelper.TABLE_NAME    , MySQLiteOpenHelper.VOLUMN_ID+"=?" //添加"=?"    , new String[] {String.valueOf(id)});    writableDB.close();    initListView();    }    });    }    }}

MySQLiteOpenHelper.java

package dyingbleed.iteye;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;public class MySQLiteOpenHelper extends SQLiteOpenHelper {public static final String DATABASE_NAME = "dyingbleed";public static final String TABLE_NAME = "list";public static final String VOLUMN_ID = "_id";public static final String VOLUMN_NAME = "name";public MySQLiteOpenHelper(Context context) {super(context, TABLE_NAME, null, 1);// TODO Auto-generated constructor stub}@Overridepublic void onCreate(SQLiteDatabase db) {String sql = "CREATE TABLE IF NOT EXISTS "+TABLE_NAME+"("+VOLUMN_ID+" INTEGER PRIMARY KEY AUTOINCREMENT,"+VOLUMN_NAME+" TEXT UNIQUE)";db.execSQL(sql);}@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {// TODO Auto-generated method stub}}

运行截图

更多相关文章

  1. Android中加入依赖库点击运行后报错:com.android.dex.DexIndexOve
  2. android通讯录数据库表解析和添加,访问通讯录
  3. android ImageView实现上面圆角下面直角(自定义view实现)
  4. [置顶] Android(安卓)如何对sqlite数据库进行增删改[insert、upd
  5. Android会根据内容自动变色的TextView
  6. android文件上传示例分享(android图片上传)
  7. android 在listview上的 gallery 禁止上下滑动
  8. 窗口透明样式示例
  9. android WebViewClient和WebChromeClient

随机推荐

  1. Android 中文API (66) —— BluetoothClass
  2. Android 音频播放
  3. Android -很全的android操作内容丰富
  4. Android 一个APK文件部署产生多个应用安
  5. 优酷菜单
  6. 半透明Activity方法
  7. android 设置activity不全屏
  8. TextView的走马灯效果
  9. 国产android新机开用5件事
  10. Android 判断SD卡是否存在及容量查询