《二》Android 数据库 SQlite SQLiteOpenHelper
来源:互联网 发布:eclipse java 反编译 编辑:程序博客网 时间:2024/05/16 07:27
/****************************************************
大家都知道写博客会很累的,大热天的。
希望=转载请注明出处:http://blog.csdn.net/ta893115871
请不要可怜你的鼠标,(*^__^*) 嘻嘻……
***************************************************/
源代码已经在资源中共享了。
http://download.csdn.net/detail/ta893115871/4440305
界面如下所示:
有一个问题:就是为什么Menu的图标设置不上啊,现在用的是4.0.4的SDK版本,以前用的是SDK2.1的可以。
一是我在.xml文件中iem中加了属性 android:icon="@drawable/add"不能显示。
二是我在java文件中setion(R.drawable.add);也不可以。
哪位大侠知道,给我留下言,万分感谢啊。
SQliteOpenHelperDemo.java
package com.example.sqliteopenhelperdemo;import android.os.Bundle;import android.app.Activity;import android.database.Cursor;import android.database.sqlite.SQLiteCursor;import android.view.KeyEvent;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.AdapterView.OnItemSelectedListener;import android.widget.EditText;import android.widget.ListView;import android.support.v4.widget.SimpleCursorAdapter;public class SQliteOpenHelperDemo extends Activity {private EditText mEditText;private ListView mListView;private SimpleCursorAdapter adapter;private MyDataBase dataBase;private Cursor mCursor;private int _id;//当前游标Cursor所在的字段值@SuppressWarnings("deprecation")@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_sqlite_open_helper_demo);mEditText = (EditText) this.findViewById(R.id.edit_id);mListView = (ListView) this.findViewById(R.id.listView_id);mListView.setOnItemClickListener(clickListener);mListView.setOnItemSelectedListener(selectedListener);//创建SQLiteOpenHelper对象的引用dataBase=new MyDataBase(this); /* 取得DataBase里的资料 */mCursor=dataBase.query(); /* new SimpleCursorAdapter并将myCursor传入,显示数据的字段为 _id,todo_text */ adapter=new SimpleCursorAdapter(this,R.layout.list,mCursor, new String[]{MyDataBase.FIELD_id,MyDataBase.FIELD_TEXT }, new int[]{R.id.itemid_id,R.id.itemcon_id,});mListView.setAdapter(adapter);}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {getMenuInflater().inflate(R.menu.activity_sqlite_open_helper_demo, menu);return true;}public boolean onMenuItemSelected(int featureId, MenuItem item) {switch (item.getItemId()) {case R.id.menu_add:this.add();break;case R.id.menu_modfi:this.mod();break;case R.id.menu_delete: this.delete();break;default:break;}return false;}; // ListView的点击事件处理OnItemClickListener clickListener = new OnItemClickListener() {public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {// TODO Auto-generated method stubmCursor.moveToPosition(arg2);_id=mCursor.getInt(mCursor.getColumnIndex(MyDataBase.FIELD_id));mEditText.setText(mCursor.getString(mCursor.getColumnIndex(MyDataBase.FIELD_TEXT)));}};//监听处理鼠标滚轮的事件处理OnItemSelectedListener selectedListener = new OnItemSelectedListener() {public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,long arg3) {// TODO Auto-generated method stub_id=mCursor.getInt(mCursor.getColumnIndex(MyDataBase.FIELD_id));SQLiteCursor c=(SQLiteCursor)arg0.getSelectedItem();mEditText.setText(c.getString(c.getColumnIndex(MyDataBase.FIELD_TEXT)));}public void onNothingSelected(AdapterView<?> arg0) {// TODO Auto-generated method stub}};//更新ListViewpublic void myUpDateShow(){ /* 重新查询 */mCursor.requery();//告知适配器已经改变adapter.notifyDataSetChanged();mEditText.setText("");_id = 0; }//增加public void add(){String str=mEditText.getText().toString();if (str.equalsIgnoreCase("")) {return;} /* 新增数据到数据库 */dataBase.addMethod(str);myUpDateShow();}//修改public void mod(){String str=mEditText.getText().toString();if (str.equalsIgnoreCase("")) {return;}//修改dataBase.modMethod(_id,str);myUpDateShow();}//删除public void delete(){if (_id==0) {return;}dataBase.deleteMethod(_id);myUpDateShow();}@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {// TODO Auto-generated method stubif (keyCode==KeyEvent.KEYCODE_BACK) {//关闭数据库,退出程序dataBase.close();this.finish();}return super.onKeyDown(keyCode, event);}}
MyDataBase.java
package com.example.sqliteopenhelperdemo;import android.content.ContentValues;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;import android.util.Log;public class MyDataBase extends SQLiteOpenHelper {private static final String DATABASE_NAME = "demo_db";//数据库的名字private static final int DATABASEVERSION = 1;//版本号private static final String TABLE_NAME = "demo_table";//表名public static final String FIELD_id = "_id";//必须为_idpublic static final String FIELD_TEXT = "demo_text";private SQLiteDatabase db;//数据库private static final String TAG = "MyDataBase";public MyDataBase(Context context) {super(context, DATABASE_NAME, null, DATABASEVERSION);// TODO Auto-generated constructor stubdb = this.getWritableDatabase();// 打开或新建数据库(第一次时创建)获得SQLiteDatabase对象,为了读取和写入数据}@Overridepublic void onCreate(SQLiteDatabase db) {// TODO Auto-generated method stub/* 建立表table */Log.i(TAG, " onCreate() ");String sql = "CREATE TABLE " + TABLE_NAME + " (" + FIELD_id+ " INTEGER PRIMARY KEY AUTOINCREMENT," + " " + FIELD_TEXT+ " TEXT)";db.execSQL(sql);}//更新数据库@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {// TODO Auto-generated method stubLog.i(TAG, " onUpgrade() ");//删除表的SQLString sql = "DROP TABLE IF EXITS " + TABLE_NAME;db.execSQL(sql);onCreate(db);}//关闭数据库@Overridepublic synchronized void close() {// TODO Auto-generated method stubLog.i(TAG, " close() ");db.close();super.close();}@Overridepublic void onOpen(SQLiteDatabase db1) {// TODO Auto-generated method stubLog.i(TAG, " onOpen() ");super.onOpen(db1);}// 增加数据public long addMethod(String str) {/* 将新增的值放入ContentValues */ContentValues cv = new ContentValues();cv.put(FIELD_TEXT, str);//键值对long row = db.insert(TABLE_NAME, null, cv);Log.i(TAG, "addMethod row=" + row);return row;}// 删除public void deleteMethod(int id) {String[] whereArgs = { Integer.toString(id) };int rowsaffected = db.delete(TABLE_NAME, FIELD_id + "=?", whereArgs);Log.i(TAG, "deleteMethod() rowsaffected=" + rowsaffected);}// 修改public void modMethod(int id, String str) {ContentValues values = new ContentValues();values.put(FIELD_TEXT, str);String[] whereArgs = { Integer.toString(id) };int rowsaffected = db.update(TABLE_NAME, values, FIELD_id + " = ?",whereArgs);Log.i(TAG, "modMethod() rowsaffected=" + rowsaffected);}// 查询所有的数据 ,返回Cursor对象public Cursor query() {//asc是升序desc为降序(默认为asc)return db.query(TABLE_NAME, null, null, null, null, null, FIELD_id + " ASC");}}
写不开了
其他布局xml文件等见资源:
http://download.csdn.net/detail/ta893115871/4440305
- 《二》Android 数据库 SQlite SQLiteOpenHelper
- Android SQLite数据库—SQLiteOpenHelper(二)
- 《一》Android 数据库 SQlite SQLiteOpenHelper
- android SQLite数据库及SQLiteOpenHelper
- Android Sqlite SQLiteOpenHelper建立数据库
- Android 数据库SQLITE(SQLITEOPENHELPER运用)
- Android中继承SQLiteOpenHelper调用Sqlite数据库
- Android SQLite数据库之三,SQLiteOpenHelper
- 【android】SQLite数据库之SQLiteOpenHelper与SQLiteDatabase
- Android SQLite数据库—SQLiteOpenHelper(一)
- Android SQLiteOpenHelper Sqlite数据库升级onUpgrade
- 2014-10-27Android学习------SQLite数据库操作(二)-----数据库的创建--SQLiteHelper extends SQLiteOpenHelper
- android SQLite SQLiteOpenHelper
- Android-SQLite和SQLiteOpenHelper
- android SQLite使用SQLiteOpenHelper类对数据库进行操作
- Android应用开发---SQLiteOpenHelper管理SQLite数据库、ListView
- android SQLite使用SQLiteOpenHelper类对数据库进行操作
- android SQLite使用SQLiteOpenHelper类对数据库进行操作
- 嵌入式c面试题
- C语言学习笔记(一)
- Excel数据透视表 PivotTable
- android检测内存使用工具--procrank
- EditText添加长度限制
- 《二》Android 数据库 SQlite SQLiteOpenHelper
- exists 实现查看表Activity中FmyId=1(具体数字在程序中动态给定)的好友发起的活动
- SDRAM芯片初始化、行有效、列读写时序
- C# matlab混合编程 MWArray使用笔记
- Div+Css控制div定位
- 一些重要的算法
- 2011.11.17 星期四 I2c-dev.c 参考代码 TP驱动分析(五)
- select 设置下拉列表的选中项的值 显示当前日期 年份 月份 下拉列表获取当前日期
- jquery.validate全攻略