安卓数据库增删改查(android安卓数据库的增删改查和发送通知)

2024-07-23 02:47:09 7

安卓数据库增删改查(android安卓数据库的增删改查和发送通知)

本文目录

android安卓数据库的增删改查和发送通知

public class MyDbOpenHeler extends SQLiteOpenHelper {    private static final String name="zhouke.db";    private static final int version=1;    public MyDbOpenHeler(Context context) {        super(context, name, null, version);    }    @Override    public void onCreate(SQLiteDatabase db) {        db.execSQL("create table if not exists word(_id integer primary key autoincrement,name varchar(20),age int)");    }    @Override    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {    }}------------------------------------------------public class Main2Activity extends AppCompatActivity {    ListView lv;    MyDbOpenHeler heler;    SQLiteDatabase db;    SimpleCursorAdapter adapter;    EditText et1;    //通知    NotificationManager manage;    //---    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main2);        lv= (ListView) findViewById(R.id.lv);        //实例化数据库帮助类        heler=new MyDbOpenHeler(this);        //获取一个可读写的数据库操作对象        db=heler.getWritableDatabase();        Cursor word = db.query("word", null, null, null, null, null, "_id desc");        adapter=new SimpleCursorAdapter(this,R.layout.list_ltem,word,                new String{R.id.tv1,R.id.tv2,R.id.tv3},                CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER);        lv.setAdapter(adapter);//        if(word.isClosed()){//            word.close();//        }        registerForContextMenu(lv);        //通知的实例化        manage= (NotificationManager) getSystemService(NOTIFICATION_SERVICE);        //---        et1= (EditText) findViewById(R.id.et1);    }    //创建选项菜单    @Override    public boolean onCreateOptionsMenu(Menu menu) {        menu.add(1,1,0,"增");        return super.onCreateOptionsMenu(menu);    }    //选项菜单监听事件    @Override    public boolean onOptionsItemSelected(MenuItem item) {        View inflate = View.inflate(this, R.layout.dialog, null);        final EditText et1 = (EditText) inflate.findViewById(R.id.et1);        final EditText et2 = (EditText) inflate.findViewById(R.id.et2);        new AlertDialog.Builder(this).setTitle("增加新学生信息").setView(inflate)                .setPositiveButton("确认", new DialogInterface.OnClickListener() {                    @Override                    public void onClick(DialogInterface dialog, int which) {                        ContentValues cv=new ContentValues();                        cv.put("name",et1.getText().toString());                        cv.put("age", et2.getText().toString());                        long word = db.insert("word", null, cv);                        if (word》0){                            Toast.makeText(Main2Activity.this,"增加数据成功",Toast.LENGTH_SHORT).show();                            Cursor word2 = db.query("word", null, null, null, null, null, "_id desc");                            adapter.changeCursor(word2);                            //通知---开始                            NotificationCompat.Builder builder=new NotificationCompat.Builder(Main2Activity.this);                            builder.setSmallIcon(R.drawable.aa)                                    .setContentText("年龄:"+et2.getText().toString())                                    .setContentTitle(et1.getText().toString())                                    .setAutoCancel(true);                            manage.notify(1,builder.build());                            //通知 --结束                        }                    }                }).setNegativeButton("取消", new DialogInterface.OnClickListener() {            @Override            public void onClick(DialogInterface dialog, int which) {            }        }).show();        return super.onOptionsItemSelected(item);    }    //创建上下文菜单    @Override    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {        super.onCreateContextMenu(menu, v, menuInfo);        menu.add(1,2,0,"修改");        menu.add(1,3,0,"删除");    }    //上下文菜单监听事件    @Override    public boolean onContextItemSelected(MenuItem item) {        //获取当前点击项的索引        AdapterView.AdapterContextMenuInfo info= (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();        int position = info.position;        //根据索引获取这一行数据,把它转化为Cursor        Cursor  cursor= (Cursor) adapter.getItem(position);        //从结果集中取出id        final int _id = cursor.getInt(0);        switch (item.getItemId()){            case 2:                View inflate = View.inflate(this, R.layout.dialog, null);                final EditText et1 = (EditText) inflate.findViewById(R.id.et1);                final EditText et2 = (EditText) inflate.findViewById(R.id.et2);                //获取单词名称                String name=cursor.getString(1);                String age=cursor.getString(2);                et1.setText(name);                et2.setText(age);                new AlertDialog.Builder(this).setTitle("修改学生信息").setView(inflate)                        .setPositiveButton("确认", new DialogInterface.OnClickListener() {                            @Override                            public void onClick(DialogInterface dialog, int which) {                                ContentValues cv=new ContentValues();                                cv.put("name",et1.getText().toString());                                cv.put("age", et2.getText().toString());                                int word=db.update("word",cv,"_id=?",new String{String.valueOf(_id)});                                if (word》0){                                    Toast.makeText(Main2Activity.this,"修改数据成功",Toast.LENGTH_SHORT).show();                                    Cursor word2 = db.query("word", null, null, null, null, null, "_id desc");                                    adapter.changeCursor(word2);                                }                            }                        }).setNegativeButton("取消", new DialogInterface.OnClickListener() {                    @Override                    public void onClick(DialogInterface dialog, int which) {                    }                }).show();                break;            case 3:                int word = db.delete("word", "_id=?", new String{String.valueOf(_id)});                if (word》0){                    Toast.makeText(Main2Activity.this,"删除数据成功",Toast.LENGTH_SHORT).show();                    Cursor word2 = db.query("word", null, null, null, null, null, "_id desc");                    adapter.changeCursor(word2);                }                break;        }        return super.onContextItemSelected(item);    }    public void click1(View view) {        //模糊查询        String aa=et1.getText().toString();        Cursor word2 = db.query("word", null, "name like ?", new String{"%"+aa+"%"}, null, null, "_id desc");        adapter.changeCursor(word2);        //正常查询 //       Cursor word2 = db.query("word", null, "name=?", new String{aa}, null, null, "_id desc");    }}

android中如何对xml中存储的数据进行增删改查求完整的例子谢谢

android中,不能直接访问和读取xml文件中的数据。 只能先把xml的数据解析出来,存储在集合或者数据库里,再进行增删改查,如需要将xml文件的内容更新,就重写个文件替换。

如何对android多媒体数据库进行增删改

Android四种存储方式: sharedpreference,file,SQlite,contentprovider。  1、SharedPreferences是一种轻型的数据存储方式,它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息。其存储位置在/data/data/《包名》/shared_prefs目录下。SharedPreferences对象本身只能获取数据而不支持存储和修改,存储修改是通过Editor对象实现。实现SharedPreferences存储的步骤如下:  一、根据Context获取SharedPreferences对象  二、利用edit()方法获取Editor对象。  三、通过Editor对象存储key-value键值对数据。  四、通过commit()方法提交数据。  具体实现代码如下:实现存储,读取,清除,删除  效果图:  首先创建:// 首先拿到sharedpreference对象  mShared =getSharedPreferences(SHARED_MAIN_XML, MODE_PRIVATE);  存储:  private void write() {// 存入数据  savename = name.getText().toString().trim();  saveage = Integer.valueOf(age.getText().toString().trim());  Editor editor = mShared.edit();  editor.putString("name", savename);  editor.putInt("age", saveage);  // 保证操作的事务完整性  editor.commit();  }  阅读:  private String read() {// 从数据库里读取数据  namecontent = mShared.getString("name", "数据库里没有存储姓名");  agecontent = mShared.getInt("age", 0);  String reading = "姓名:" + namecontent + "\n年龄:" + agecontent;  return reading;  }  清除内容:  private void clear() {//清除内容  /** 开始清除SharedPreferences中保存的内容 **/  Editor editor = mShared.edit();  editor.remove("name");  editor.remove("age");  editor.commit();  }  删除文件:  private void delete() {//删除文件  /** 删除SharedPreferences文件 **/  Filefile = new File("/data/data/cn.csdn.activity" + "/shared_prefs/"  + SHARED_MAIN_XML + ".xml");  if (file.exists()) {  file.delete();  Toast.makeText(this, "删除成功", Toast.LENGTH_LONG).show();  }  }  haredPreferences对象与SQLite数据库相比,免去了创建数据库,创建表,写SQL语句等诸多操作,相对而言更加方便,简洁。但是SharedPreferences也有其自身缺陷,比如其职能存储boolean,int,float,long和String五种简单的数据类型,比如其无法进行条件查询等。所以不论SharedPreferences的数据存储操作是如何简单,它也只能是存储方式的一种补充,而无法完全替代如SQLite数据库这样的其他数据存储方式。  2、 File: 即常说的文件(I/O)存储方法,常用存储大数量的数据,但是缺点是更新数据将是一件困难的事情。  下面实现:在本地data文件下使用自己生成的文件处理数据的新建储存 读取 删除  如果说不想把内容存在SharedPreferences中的话,我们可以自己写一个文件保存须要的数据,在这里我将文件保存在系统中的工程路径下。  跟上面布局一样,删除文件也一样,清除内容也查不多,下面只是简单的写和读的方法:  写:  17String nameage="名字:"+name.getText().toString().trim()+"年龄:"+age.getText().toString();  try {  os = this.openFileOutput(SHARED_MAIN_XML, MODE_PRIVATE);  /* 把字符串转换成字节数组,写入文件中 */  os.write(nameage.getBytes());  } catch (FileNotFoundException e) {  e.printStackTrace();  } catch (IOException e) {  e.printStackTrace();  }finally {  try {  /* 关闭文件输出流 */  os.close();  } catch (IOException e) {  e.printStackTrace();  }  }  读:  private String read() {  String nameage="";  // 打开文件输入流,  try {  is = this.openFileInput(SHARED_MAIN_XML);  /* 初始化字节数组 */  b = new byte;  /* 从文件输入流中读取内容到字节数组中,返回内容长度 */  int length = is.read(b);  /* 把字节数组转换成字符串 */  nameage= new String(b);  } catch (FileNotFoundException e) {  e.printStackTrace();  } catch (IOException e) {  e.printStackTrace();  }  return nameage;  }  很简单吧!!  3、 SQLite是一种转为嵌入式设备设计的轻型数据库,其只有五种数据类型,分别是:  NULL: 空值  INTEGER: 整数  REAL: 浮点数  TEXT: 字符串  BLOB: 大数据  它是一个轻量级的数据库、非常小 、 移植性好、效率高、可靠  在Android系统中提供了android.database.sqlite包,用于进行SQLite数据库的增、删、改、查工作。  创建与删除数据库  封装一个类去继承SQLiteOpenHelper 在构造函数中传入数据库名称与数据库版本号,数据库被创建的时候会调用onCreate(SQLiteDatabase db) 方法,数据库版本号发生改变的时候会调用onUpgrade(SQLiteDatabase db, int oldVersion, intnewVersion)方法,可以方便的对软件游戏升级后做出相应处理避免覆盖安装数据库发生改变产生的错误。调用SQLiteOpenHelper 的getReadableDatabase()方法去创建数据库,如果数据库不存在则创建并且返回SQLiteDatabase对象,如果数据库存在则不创建只返回SQLiteDatabase对象。调用 deleteDatabase(DATABASE_NAME)方法 传入数据库名称则可删除数据库。***隐藏网址***  下面介绍第二种:另一种添删改查操作  效果图:  布局文件很简单,在此不再给出!!  直接给创建数据库和表,增删改查的代码:  public class UserService {  private DatabaseHelper helper;  public UserService(Context context, String name, int version) {  helper = new DatabaseHelper(context, name, version);  }  public UserService(Context context, String name) {  helper = new DatabaseHelper(context, name);  }  public void insert(UserDao user) {// 插入数据  SQLiteDatabase sdb = helper.getWritableDatabase();  ContentValues values = new ContentValues();  values.put("username", user.getUsername());  values.put("password", user.getPassword());  sdb.insert("user", "name", values);  sdb.close();  }  public void delete(int id) {// 删除数据  SQLiteDatabase sdb = helper.getWritableDatabase();  sdb.delete("user", "id=?", new String{String.valueOf(id)});  sdb.close();  }  public void update(UserDao user, int id) {// 更新数据  SQLiteDatabase sdb = helper.getWritableDatabase();  ContentValues values=new ContentValues();  values.put("username", user.getUsername());  values.put("password", user.getPassword());  sdb.update("user", values, "id=?", new String{String.valueOf(id)});  sdb.close();  }  public Cursor select() {// 查询所有数据  SQLiteDatabase sdb = helper.getWritableDatabase();  return sdb.query("user", new String{"id as _id","username","password"}, null, null, null, null, null);  }  public UserDao find(int id){//按id查询数据  UserDao user=null;  SQLiteDatabase sdb=helper.getWritableDatabase();  Cursor cursor=sdb.query("user", new String{"id","username","password"}, "id=?", new String{String.valueOf(id)}, null, null, null);  if(cursor.moveToFirst()){  user=new UserDao();  user.setId(cursor.getInt(0));  user.setUsername(cursor.getString(1));  user.setPassword(cursor.getString(2));  }  cursor.close();  sdb.close();  return user;  }  }  插入数据:通过insert(String table, StringnullColumnHack, ContentValues values)方法插入数据,其中参数含义分别为:  table: 目标表名  nullColumnHack: 指定表中的某列列名。因为在SQLite中,不允许不允许插入所有列均为null的记录,因此初始值有值为空时,此列需显式赋予null  values:ContentValues对象,类似于java中的Map。以键值对的方式保存数据。

安卓用eclipse数据库的连接,增删改查问题

Android 连接数据库Android采用关系型数据库SQLite3,它是一个支持SQL轻量级的嵌入式数据库,在嵌入式操作上有很广泛的,WM采用的也是SQLite3关于过于、原理方面的东西在这篇文章里不会提到,但是如果你想能够快速的学会操作SQLite3,那这就是你要找的文章!首先,我们看一下api,所有数据库相关的接口、类都在.database和android.database.sqlite两个包下,虽然只有两个包,但是如果你英文不好或是太懒的话也要迷茫一段时间,其实,我们真正用的到的没有几个!1、SQLiteOpenHelper (android.database.sqlite.SQLiteOpenHelper)这是一个抽象类,关于抽象类我们都知道,如果要使用它,一定是继承它!这个类的方法很少,有一个构造方法SQLiteOpenHelper(android.content.Context context, java.lang.String name,android.database.sqlite.SQLiteDatabase.CursorFactory factory, int version);参数不做过多的解释,CursorFactory一般直接传null就可以public void onCreate(SQLiteDatabase db)此方法在创建数据库是被调用,所以,应该把创建表的操作放到这个方法里面,一会儿在后面我们会再详细的说如何创建表public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)从方法名上我们就能知道这个方法是执行更新的,没错,当version改变是系统会调用这个方法,所以在这个方法里应该执行删除现有表,然后手动调用onCreate的操作SQLiteDatabase getReadableDatabase()可读的SQLiteDatabase对象SQLiteDatabase getWritableDatabase()获取可写的SQLiteDatabase对象2、SQLiteDatabase(android.database.sqlite.SQLiteDatabase)关于操作数据库的工作(增、删、查、改)都在这个类里execSQL(sql)执行SQL语句,用这个方法+SQL语句可以非常方便的执行增、删、查、改除此之外,Android还提供了功过方法实现增、删、查、改long insert(TABLE_NAME, null, contentValues)添加记录int delete(TABLE_NAME, where, whereValue)删除记录int update(TABLE_NAME, contentValues, where, whereValue) 更新记录Cursor query(TABLE_NAME, null, null, null, null, null, null) 查询记录除此之外,还有很多方法,如:beginTransaction()开始事务、endTransaction()结束事务...有兴趣的可以自己看api,这里就不多赘述了3、Cursor(android.database.Cursor)游标(接口),这个很熟悉了吧,Cursor里的方法非常多,常用的有:boolean moveToPosition(position)将指针移动到某记录getColumnIndex(Contacts.People.NAME)按列名获取idint getCount()获取记录总数boolean requery()重新查询boolean isAfterLast()指针是否在末尾boolean isBeforeFirst()时候是开始位置boolean isFirst()是否是第一条记录boolean isLast()是否是最后一条记录boolean moveToFirst()、 boolean moveToLast()、 boolean moveToNext()同moveToPosition(position)4、SimpleCursorAdapter(android.widget.SimpleCursorAdapter)也许你会奇怪了,之前我还说过关于数据库的操作都在database和database.sqlite包下,为什么把一个Adapter放到这里,如果你用过Android的SQLite3,你一定会知道,这是因为我们对数据库的操作会经常跟列表联系起来经常有朋友会在这出错,但其实也很简单SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,R.layout.list,myCursor,new String {DB.TEXT1,DB. TEXT2},new int{ R.id.list1,R.id.listText2 });my.setAdapter(adapter);一共5个参数,具体如下:参数1:Content参数2:布局参数3:Cursor游标对象参数4:显示的字段,传入String参数5:显示字段使用的组件,传入int,该数组中是TextView组件的id到这里,关于数据库的操作就结束了,但是到目前为止我只做了翻译的工作,有些同学可能还是没有掌握,放心,下面我们一起顺着正常开发的思路理清一下头绪!前面的只是帮没做过的朋友做下普及,下面才是你真正需要的!一、写一个类继承SQLiteOpenHelpepublic class DatabaseHelper extends SQLiteOpenHelper构造方法:DatabaseHelper(Context context) {super(context, DATABASE_NAME, null, DATABASE_VERSION);}在onCreate方法里写建表的操作public void onCreate(SQLiteDatabase db) {String sql = "CREATE TABLE tb_test (_id INTEGER DEFAULT ’1’ NOT NULL PRIMARY KEY AUTOINCREMENT,class_jb TEXT NOT NULL,class_ysbj TEXT NOT NULL,title TEXT NOT NULL,content_ysbj TEXT NOT NULL)";db.execSQL(sql);//需要异常捕获}在onUpgrade方法里删除现有表,然后手动调用onCtreate创建表public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {String sql = "drop table "+tbname;db.execSQL(sql);onCreate(db);}对表增、删、查、改的方法,这里用的是SQLiteOpenHelper提供的方法,也可以用sql语句实现,都是一样的关于获取可读/可写SQLiteDatabase,我不说大家也应该会想到,只有查找才会用到可读的SQLiteDatabase/*** 添加数据*/public long insert(String tname, int tage, String ttel){SQLiteDatabase db= getWritableDatabase();//获取可写SQLiteDatabase对象//ContentValues类似map,存入的是键值对ContentValues contentValues = new ContentValues();contentValues.put("tname", tname);contentValues.put("tage", tage);contentValues.put("ttel", ttel);return db.insert(tbname, null, contentValues);}/*** 删除记录* @param _id*/public void delete(String _id){SQLiteDatabase db= getWritableDatabase();db.delete(tbname,"_id=?",new String{_id});}/*** 更新记录的,跟插入的很像*/public void update(String _id,String tname, int tage, String ttel){SQLiteDatabase db= getWritableDatabase();ContentValues contentValues = new ContentValues();contentValues.put("tname", tname);contentValues.put("tage", tage);contentValues.put("ttel", ttel);db.update(tbname, contentValues,"_id=?",new String{_id});}/*** 查询所有数据* @return Cursor*/public Cursor select(){SQLiteDatabase db = getReadableDatabase();return db.query(tbname,new String{"_id","tname","tage","ttel","taddr"},null,null, null, null, "_id desc");}

你好 我们也是要用MY SQL实现数据库的增删改查

  一、---数据库创建---  想要对数据库进行增删改查,首先要创建一个数据库,安卓中的数据库是使用sqlite,我们是通过调用SQLiteOpenHelper类来进行数据库的创建的和操作的。   view plain copy print?在CODE上查看代码片派生到我的代码片package com.iigt.crud;  import android.content.Context;  import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;public class MySqlite extends SQLiteOpenHelper {public MySqlite(Context context) {  //context :上下文 , name:数据库文件的名称 factory:用来创建cursor对象,默认为null//version:数据库的版本号,从1开始,如果发生改变,onUpgrade方法将会调用,4.0之后只能升不能将super(context, "info.db", null,1);  }  //oncreate方法是数据库第一次创建的时候会被调用; 特别适合做表结构的初始化,需要执行sql语句;SQLiteDatabase db可以用来执行sql语句@Override  public void onCreate(SQLiteDatabase db) {//通过SQLiteDatabase执行一个创建表的sql语句db.execSQL("create table info (_id integer primary key autoincrement,name varchar(20),phone varchar(11))");}  //onUpgrade数据库版本号发生改变时才会执行; 特别适合做表结构的修改@Override  public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {//添加一个phone字段  //db.execSQL("alter table info add phone varchar(11)");}  }  二、---操作类---  定义完了数据库,再就是定义我们使用的往数据库中存数据的函数了,也就是我们通常所指的DAO函数,不过在定义DAO函数之前,先要定义一个bean类,要不想要操作的数据无从而来。如下是bean和DAO。   view plain copy print?在CODE上查看代码片派生到我的代码片package com.iigt.bean;  public class InfoBean {  public String name;  public String phone;  }  DAO的代码如下:   view plain copy print?在CODE上查看代码片派生到我的代码片package com.iigt.dao;  import android.content.Context;  import android.database.Cursor;  import android.database.sqlite.SQLiteDatabase;import com.iigt.bean.InfoBean;  import com.iigt.crud.MySqlite;  public class InfoDao {  private MySqlite mySqliteOpenHelper;  public InfoDao(Context context){  //创建一个帮助类对象  mySqliteOpenHelper = new MySqlite(context);}  public void add(InfoBean bean){  //调用getReadableDatabase方法,来初始化数据库的创建SQLiteDatabase db = mySqliteOpenHelper.getWritableDatabase();//sql:sql语句, bindArgs:sql语句中占位符的值db.execSQL("insert into info(name,phone) values(?,?);", new Object{bean.name,bean.phone});//关闭数据库对象  db.close();  }  public void del(String name){  SQLiteDatabase db = mySqliteOpenHelper.getReadableDatabase();db.execSQL("delete from info where name=?;", new Object{name});db.close();  }  public void update(InfoBean bean){  SQLiteDatabase db = mySqliteOpenHelper.getReadableDatabase();db.execSQL("update info set phone=? where name=?;", new Object{bean.phone,bean.name});db.close();  }  public void query(String name){  //执行sql语句需要sqliteDatabase对象  //调用getReadableDatabase方法,来初始化数据库的创建SQLiteDatabase db = mySqliteOpenHelper.getReadableDatabase();//sql:sql语句, selectionArgs:查询条件占位符的值,返回一个cursor对象Cursor cursor = db.rawQuery("select _id, name,phone from info where name = ?;", new String {name});//解析Cursor中的数据  if(cursor != null && cursor.getCount() 》0){//判断cursor中是否存在数据//循环遍历结果集,获取每一行的内容  while(cursor.moveToNext()){//条件,游标能否定位到下一行//获取数据  int id = cursor.getInt(0);  String name_str = cursor.getString(1);  String phone = cursor.getString(2);  System.out.println("_id:"+id+";name:"+name_str+";phone:"+phone);}  cursor.close();//关闭结果集  }  //关闭数据库对象  db.close();  }  }  三、---操作界面---  定义一操作界面来对数据库进行操作,操作界面包括增删改查。***隐藏网址***  android:layout_height="match_parent"  android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"android:orientation="vertical"  tools:context=".MainActivity" 》  《Button  android:id="@+id/bt_add"  android:layout_width="fill_parent"  android:layout_height="wrap_content"  android:text="@string/add" /》  《Button  android:id="@+id/bt_del"  android:layout_width="fill_parent"  android:layout_height="wrap_content"  android:text="@string/del" /》  《Button  android:id="@+id/bt_update"  android:layout_width="fill_parent"  android:layout_height="wrap_content"  android:text="@string/update" /》  《Button  android:id="@+id/bt_query"  android:layout_width="fill_parent"  android:layout_height="wrap_content"  android:text="@string/query" /》  《/LinearLayout》  四、---主函数---  (1)创建一个layout界面,其中包含“增删改查”4个控件。  (2)获取这四个控件,并根据各个控件的ID来判断点击的是哪个事件(3)此时如果是判断是点击了add事件,就应该增加了,所以需要调用增加函数(4)需要先创建一个javabean和它的操作类DAO(5)dao是要向数据库中增加数据,要创建一个数据库并进行初始化(6)在dao类中定义向数据库中的增删改查方法 view plain copy print?在CODE上查看代码片派生到我的代码片package com.iigt.crud;  import android.app.Activity;  import android.content.Context;  import android.database.sqlite.SQLiteDatabase;import android.os.Bundle;  import android.view.View;  import android.view.View.OnClickListener;import com.iigt.bean.InfoBean;  import com.iigt.dao.InfoDao;  import com.iigt.adddeldatabase.*;  public class MainActivity extends Activity implements OnClickListener {private Context mContext;  @Override  protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);  setContentView(R.layout.activity_main);  mContext = this;  //创建一个帮助类对象  MySqlite mySqliteOpenHelper = new MySqlite(mContext);//调用getReadableDatabase方法,来初始化数据库的创建SQLiteDatabase db = mySqliteOpenHelper.getReadableDatabase();//找到相应控件  findViewById(R.id.bt_add).setOnClickListener(this);findViewById(R.id.bt_del).setOnClickListener(this);findViewById(R.id.bt_update).setOnClickListener(this);findViewById(R.id.bt_query).setOnClickListener(this);}  @Override  public void onClick(View v) {  InfoDao infoDao = new InfoDao(mContext);//创建一个dao对象做增删改查switch (v.getId()) {  case R.id.bt_add:  InfoBean bean = new InfoBean();  bean.name = "张三";  bean.phone ="110";  infoDao.add(bean);  InfoBean bean1 = new InfoBean();  bean1.name = "李四";  bean1.phone ="120";  infoDao.add(bean1);  break;  case R.id.bt_del:  infoDao.del("张三");  infoDao.del("李四");  break;  case R.id.bt_update:  InfoBean bean2 = new InfoBean();  bean2.name = "张三";  bean2.phone ="119";  infoDao.update(bean2);  break;  case R.id.bt_query:  infoDao.query("张三");  infoDao.query("李四");  break;  default:  break;  }  }  }

安卓数据库增删改查(android安卓数据库的增删改查和发送通知)

本文编辑:admin

更多文章:


命运英雄传存档(命运英雄传怎么内购)

命运英雄传存档(命运英雄传怎么内购)

本文目录命运英雄传怎么内购求ipad命运英雄传内购方法,最好给破解安装包,不要存档Minecraft打算和朋友开一个长期生存的存档,有什么要注意的命运英雄传怎么内购宝石数量修改为了九亿。 注意: 因为GLU游戏的特殊性,存档覆盖后可能产生金

2023年5月25日 14:20

金山爱词霸在线词典(有哪些好英文翻译网站)

金山爱词霸在线词典(有哪些好英文翻译网站)

“金山爱词霸在线词典”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看金山爱词霸在线词典(有哪些好英文翻译网站)!本文目录有哪些好英文翻译网站爱词霸的网站是什么有什么软件可以查英语句子金山词霸有哪些不错的功能呢金山词霸在线翻译

2024年3月30日 09:06

网上开店流程图(网上开店的流程图详细步骤是什么啊)

网上开店流程图(网上开店的流程图详细步骤是什么啊)

本文目录网上开店的流程图详细步骤是什么啊新手开淘宝网店详细流程步骤是什么网上开店的流程图详细步骤是什么啊第一步;准备一张银行卡,银行卡必须是你个人身份证办理的,且预留手机号码是你现在正在使用的手机号码第二步;用你手机注册某宝账号和支付宝账号

2024年7月15日 03:41

pdf转换成word最简单方法(如何把pdf转换成word格式)

pdf转换成word最简单方法(如何把pdf转换成word格式)

大家好,关于pdf转换成word最简单方法很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于如何把pdf转换成word格式的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有

2024年7月20日 01:33

qq魔法卡片手机版下载(手机能玩QQ魔法卡片吗)

qq魔法卡片手机版下载(手机能玩QQ魔法卡片吗)

各位老铁们好,相信很多人对qq魔法卡片手机版下载都不是特别的了解,因此呢,今天就来为大家分享下关于qq魔法卡片手机版下载以及手机能玩QQ魔法卡片吗的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!本文目录手机能玩QQ魔法卡

2024年7月10日 14:42

百度推广链接(怎么样获得百度推广链接)

百度推广链接(怎么样获得百度推广链接)

本文目录怎么样获得百度推广链接百度推广链接是如何收费的是按点击量收费吗,和推广收费有什么不同吗怎样取消百度页面上的推广链接百度右面的推广链接是什么意思百度推广链接和百度推广方式有什么不同怎么样获得百度推广链接您所说的是百度搜索结果最上方和最

2023年6月23日 07:00

难先锋5游戏配置是什么呢 急难先锋5好玩吗?《急难先锋5》地震关卡如何过 地震关卡过法详解

难先锋5游戏配置是什么呢 急难先锋5好玩吗?《急难先锋5》地震关卡如何过 地震关卡过法详解

本文目录难先锋5游戏配置是什么呢 急难先锋5好玩吗《急难先锋5》地震关卡如何过 地震关卡过法详解急难先锋5的主要特色《急难先锋5》雪崩任务直升飞机操作方法介绍攻略急难先锋5配置不足怎么办急难先锋5开高配掉帧是怎么回事(电脑配置达到要求了)难

2024年6月26日 18:50

为什么打开泰坦之魂后是黑屏但是有声音?泰坦之魂史莱姆心脏怎么打 第一个boss就这么恶心

为什么打开泰坦之魂后是黑屏但是有声音?泰坦之魂史莱姆心脏怎么打 第一个boss就这么恶心

本文目录为什么打开泰坦之魂后是黑屏但是有声音泰坦之魂史莱姆心脏怎么打 第一个boss就这么恶心泰坦之魂中文怎么设置泰坦之魂的场景地图泰坦之魂怎么样 泰坦之魂好玩吗为什么打开泰坦之魂后是黑屏但是有声音可能有如下原因1、运行时死机是指我们在使用

2024年5月23日 15:10

汉语词典手机版下载(推荐一下免费的,汉语词典手机应用)

汉语词典手机版下载(推荐一下免费的,汉语词典手机应用)

本篇文章给大家谈谈汉语词典手机版下载,以及推荐一下免费的,汉语词典手机应用对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。本文目录推荐一下免费的,汉语词典手机应用我想下一款手机软件,就是字典一样的,要单机,不用上网的、联网的软件,可以

2024年5月3日 05:23

空中冲突 太平洋航母(空中冲突太平洋航母闪退怎么解决)

空中冲突 太平洋航母(空中冲突太平洋航母闪退怎么解决)

本文目录空中冲突太平洋航母闪退怎么解决本人喜欢飞机军舰,有没有关于这些的游戏推荐呢俄罗斯与北约的空中对峙有可能升级为直接冲突吗珍珠港事件中,如果美军航母遭到袭击并摧毁,太平洋舰队多久会恢复实力讲诉航母电影,有空中战斗,求电影,多发点出来,我

2024年2月23日 12:20

刀塔传奇猴子(刀塔传奇猴子怎么样)

刀塔传奇猴子(刀塔传奇猴子怎么样)

本文目录刀塔传奇猴子怎么样刀塔传奇猴子觉醒任务详解刀塔传奇影魔和猴子哪个值得培养刀塔传奇怎么对付猴子《刀塔传奇》猴子巨魔对比 到底谁英雄更强刀塔传奇猴子怎么获得刀塔传奇猴子觉醒任务怎么完成刀塔传奇猴子加点刀塔传奇猴子装备刀塔传奇猴子二觉后带

2024年7月23日 19:52

php用什么软件来编程(常用的php开发工具有哪些)

php用什么软件来编程(常用的php开发工具有哪些)

大家好,关于php用什么软件来编程很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于常用的php开发工具有哪些的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!本文

2024年6月3日 07:50

暴风资讯首页(怎样关闭暴风资讯)

暴风资讯首页(怎样关闭暴风资讯)

本文目录怎样关闭暴风资讯如何调出暴风资讯怎样关闭暴风资讯  1、首先打开暴风影音,这里演示的是暴风影音的操作步骤,这个注意下,或许其他版本的操作不一样,打开暴风影音之后,点击左上角的“暴风影音”后面的倒三角。  2、在弹出的众多选项中,点击

2024年6月13日 10:36

手机酷狗网页版登录(酷狗音乐网址是什么)

手机酷狗网页版登录(酷狗音乐网址是什么)

今天给各位分享酷狗音乐网址是什么的知识,其中也会对酷狗音乐网址是什么进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录酷狗音乐网址是什么酷狗音乐怎么使用账号登录怎么酷狗账号不能在酷狗音乐上登陆了(有图)手机酷狗怎

2024年3月29日 23:40

即时战略类单机游戏(什么单机游戏最好玩 大家 都来指点下 多推荐点 即时战略-模拟经营一类的)

即时战略类单机游戏(什么单机游戏最好玩 大家 都来指点下 多推荐点 即时战略-模拟经营一类的)

本文目录什么单机游戏最好玩 大家 都来指点下 多推荐点 即时战略-模拟经营一类的星际类即时策略单机游戏什么单机游戏最好玩 大家 都来指点下 多推荐点 即时战略-模拟经营一类的玩的单机游戏2007-05-16 01:021英雄萨姆 2DOOM

2024年6月7日 21:18

扫一扫作业出答案免费(作业扫一扫整本答案,作业扫码出全部答案的软件有哪些)

扫一扫作业出答案免费(作业扫一扫整本答案,作业扫码出全部答案的软件有哪些)

这篇文章给大家聊聊关于扫一扫作业出答案免费,以及作业扫一扫整本答案,作业扫码出全部答案的软件有哪些对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录作业扫一扫整本答案,作业扫码出全部答案的软件有哪些有哪些扫一扫出答案的软件可以推

2024年4月9日 20:40

戴尔声卡驱动(戴尔笔记本声卡驱动报错52)

戴尔声卡驱动(戴尔笔记本声卡驱动报错52)

本文目录戴尔笔记本声卡驱动报错52戴尔电脑为什么没有声音戴尔g3声卡驱动在哪DELL笔记本怎么安装声卡驱动戴尔笔记本电脑lnspiron153000型号声卡驱动怎么重装请问怎么下载声卡驱动,我的是戴尔Vostro2421win旗舰戴尔灵越3

2024年3月7日 16:30

为什么我的AE安装了全能解码器后仍只能打开AVI格式视频?adobe 全能解码器显示含有病毒或者垃圾这个要怎么办

为什么我的AE安装了全能解码器后仍只能打开AVI格式视频?adobe 全能解码器显示含有病毒或者垃圾这个要怎么办

其实全能解码器的问题并不复杂,但是又很多的朋友都不太了解为什么我的AE安装了全能解码器后仍只能打开AVI格式视频,因此呢,今天小编就来为大家分享全能解码器的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!本文目录为什么我的

2024年9月2日 22:45

战争策略类手机单机游戏(策略战争类单机游戏)

战争策略类手机单机游戏(策略战争类单机游戏)

各位老铁们,大家好,今天由我来为大家分享战争策略类手机单机游戏,以及策略战争类单机游戏的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!本文目录策略战争类单机

2024年7月27日 20:45

千千音乐随心听(百度音乐随心听上的歌曲点了那个红心,是什么意思,怎么再去找这些点了红心的歌曲)

千千音乐随心听(百度音乐随心听上的歌曲点了那个红心,是什么意思,怎么再去找这些点了红心的歌曲)

这篇文章给大家聊聊关于千千音乐随心听,以及百度音乐随心听上的歌曲点了那个红心,是什么意思,怎么再去找这些点了红心的歌曲对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录百度音乐随心听上的歌曲点了那个红心,是什么意思,怎么再去找这

2024年6月29日 23:04

近期文章

本站热文

iphone vpn设置(ios设置vpn快捷开关)
2024-07-22 15:01:12 浏览:2334
windows12正式版下载(操作系统Windows Server 2012 R2,在哪能下载到,公司用的)
2024-07-20 17:26:53 浏览:1730
java安装教程(win10如何安装JAVA)
2024-07-19 19:55:49 浏览:1155
client mfc application未响应(每次进cf就提示client MFC Application未响应该怎么办啊!急急急)
2024-07-20 11:15:58 浏览:1152
标签列表

热门搜索