/****************************************************

大家都知道写博客会很累的,大热天的。

希望=转载请注明出处: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相关推荐

  1. 《一》Android 数据库 SQlite SQLiteOpenHelper

    /* 大家都知道写博客会很累的,大热天的. 希望=转载请注明出处:http://blog.csdn.net/ta893115871 请不要可怜你的鼠标,(*^__^*) 嘻嘻-- */ 众所周知,数据 ...

  2. Android 数据库(SQLite)【简介、创建、使用(增删改查、事务、实战演练)、数据显示控件(ListView、Adapter、实战演练-绿豆通讯录)】

    目   录 (壹)SQLite数据库简介 (贰)数据库的创建 (叁)数据库的使用 3.1.SQlite的基本操作 3.1.1.添加数据 3.1.2.修改数据 3.1.3.查询数据 3.1.4.删除数据 ...

  3. Android 数据库Sqlite的使用(1)

    在Android中,我们使用的数据库是一个轻量级的数据库 sqlite 下面我们来学习一下它的CURD操作 首先 我们需要创建一个类 继承自android自带的一个数据库帮助类SQLiteOpenHe ...

  4. android绿豆通讯录xml,Android 数据库(SQLite)【简介、创建、使用(增删改查、事务、实战演练)、数据显示控件(ListView、Adapter、实战演练)】...

    目   录 (壹)SQLite数据库简介 (贰)数据库的创建 (叁)数据库的使用 3.1.SQlite的基本操作 3.1.1.添加数据 3.1.2.修改数据 3.1.3.查询数据 3.1.4.删除数据 ...

  5. Android数据库—SQLite

    目录 Android数据库-SQLite 在线查看数据库方法 继承SQLiteOpenHelper的类,加载驱动 在Activity中进行增删改查 增加数据 删除数据 修改数据 查询数据 在界面上进行 ...

  6. android realm 简书,android 数据库SQLite realm

    一.SQLite android内置了数据库SQLite,这是一款轻量级的关系型数据库,通常只需要几百K的内存.数据库文件存放在/data/data//databases/目录下. 为了方便管理数据库 ...

  7. Android 数据库 SQLite

    首先关于SQLite的介绍百度上看看就大致了解的差不多了. Android 操作数据库的关键步骤就在于实现API SQLiteOpenHelper,通常这个库辅助类来创建或打开数据库. 废话不多说直接 ...

  8. android 数据库sqlite的使用

    android开发的过程中,不可避免的有需要存储数据的时候. android的数据存取机制有很多,其中最重要的大概就是sqlite数据库了 sqlite 数据库是android自带的数据库.不需要任何 ...

  9. 一篇好文之Android数据库 SQLite全解析

    项目效果地址: SQlite 1. 创建数据库 Android中使用SQlite,需要自己创建库,建表,添加数据!好在Android中提供了SQLiteOpenHelper类来帮助创建使用数据库,我们 ...

最新文章

  1. mysql mha官网下载_mysql MHA 及多主复制
  2. Asp.net MVC验证那些事(4)-- 自定义验证特性
  3. 翻译 | 摆脱浏览器限制的JavaScript
  4. Atitit.获取主板与bios序列号获取硬件设备信息  Wmi wmic 的作用
  5. windows网络编程第二版 第三章 Internet Protocol 读书笔记
  6. 【右滑返回】滑动冲突 Scroller DecorView
  7. JAVA语法——经典题目09
  8. 数据结构与算法--二叉查找树实现原理
  9. 三句话介绍清楚滑动窗口协议/GBN/SR
  10. Linux 服务器拷贝远程文件 SCP
  11. 在Silverlight 5 项目中创建单元测试项目
  12. xcode6 怎样下载ios7模拟器
  13. python udp
  14. Tally项目笔记001
  15. 模电试题_数电试题 综合测试
  16. matlab离散信号幅频相频特性,信号幅频相频特性画法(频率响应法).pdf
  17. html网站右侧广告位,分享一个html+css对联广告位的代码,网站通用
  18. 制作js原生瀑布流插件
  19. VMware虚拟机没有网
  20. 九龙证券|这一刻,资本市场进入全新时代!

热门文章

  1. R语言︱R社区的简单解析(CRAN、CRAN Task View)
  2. R语言︱基本函数、统计量、常用操作函数
  3. 最优化学习---从解方程到最优化1
  4. Docker网络解决方案-Weave部署记录
  5. redis主从和持久化
  6. Log4j与common-logging联系与区别
  7. android中getSystemService详解
  8. pdf python 3.7编程快速入门 潘中强_无python基础,这些书籍可以帮您快速入门。
  9. Linux系统初学者指南,Linux系统新手入门指南(二)
  10. java图形用户界面实验_java图形用户界面实验教程