已经学了好几天SQL了,昨天刚接触到Android操作SQL数据库,作了一个小demo,效果图如下

分别是,主界面,和修改,添加,以及删除界面

首先我们先来实现布局 MainActivity.xml

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
 4     android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin"
 5
 6     tools:context="wuxianedu.com.sqllistview.MainActivity">
 7
 8     <ListView android:id="@+id/lv_liebiao"
 9         android:layout_width="match_parent"
10         android:layout_height="match_parent">
11     </ListView>
12 </RelativeLayout>

布局很简洁,只有一个ListView,

下面是List列表的item布局

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:orientation="horizontal" android:layout_width="match_parent"
 4     android:layout_height="match_parent">
 5     <LinearLayout   android:layout_width="0dp"
 6         android:layout_height="wrap_content"
 7         android:layout_weight="5">
 8     <TextView android:id="@+id/tv_name"
 9         android:layout_width="0dp" android:layout_gravity="center_vertical"
10         android:layout_height="wrap_content"
11         android:text="aaa" android:layout_weight="1"
12         android:gravity="center"/>
13
14     <TextView android:id="@+id/tv_age"
15         android:layout_width="wrap_content"
16         android:layout_height="wrap_content" android:layout_gravity="center_vertical"
17         android:text="aaa" android:layout_weight="1"
18         android:gravity="center"/>
19     <TextView android:id="@+id/tv_sex"
20         android:layout_width="wrap_content"
21         android:layout_height="wrap_content" android:layout_gravity="center_vertical"
22         android:text="aaa" android:layout_weight="1"
23         android:gravity="center"/>
24     </LinearLayout>
25     <Button android:id="@+id/but_name"
26         android:layout_width="0dp"
27         android:layout_height="wrap_content"
28         android:text="修改" android:layout_weight="1"
29         android:gravity="center"/>
30
31     <Button android:id="@+id/but_delete"
32         android:layout_width="0dp"
33         android:layout_height="wrap_content"
34         android:text="删除" android:layout_weight="1"
35         android:gravity="center"/>
36 </LinearLayout>

之后是修改和添加界面的XML代码

UpdateActivity.xml

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <RelativeLayout  xmlns:android="http://schemas.android.com/apk/res/android"
 3     xmlns:tools="http://schemas.android.com/tools"
 4     android:layout_width="match_parent"
 5     android:orientation="vertical"
 6     android:layout_height="match_parent"
 7     android:paddingBottom="@dimen/activity_vertical_margin"
 8     android:paddingLeft="@dimen/activity_horizontal_margin"
 9     android:paddingRight="@dimen/activity_horizontal_margin"
10     android:paddingTop="@dimen/activity_vertical_margin"
11     tools:context="wuxianedu.com.sqllistview.UpdateActivity">
12
13     <EditText android:id="@+id/ed_name"
14         android:layout_width="match_parent"
15         android:layout_height="wrap_content"
16         android:hint="请输入姓名"/>
17
18     <EditText android:id="@+id/ed_age"
19         android:layout_width="match_parent"
20         android:layout_height="wrap_content"
21         android:hint="请输入年龄"
22         android:layout_below="@+id/ed_name"/>
23
24     <EditText android:id="@+id/ed_sex"
25         android:layout_width="match_parent"
26         android:layout_height="wrap_content"
27         android:hint="请输入性别"
28         android:layout_below="@+id/ed_age"/>
29
30     <Button android:id="@+id/but_queding"
31     android:layout_width="match_parent"
32     android:layout_height="wrap_content"
33     android:hint="修改用户"
34         android:layout_below="@+id/ed_sex"/>
35
36     <Button android:id="@+id/but_tianjia"
37         android:layout_width="match_parent"
38         android:layout_height="wrap_content"
39         android:hint="添加用户"
40         android:layout_below="@+id/ed_sex"/>
41
42
43 </RelativeLayout >

  这里要说一下,添加数据和修改数据用的是一个布局,在JAva文件中通过判断来确定是修改还是添加,

  下面贴出JAVA代码

 1 package wuxianedu.com.sqllistview;
 2
 3 import android.content.ContentValues;
 4 import android.content.Intent;
 5 import android.database.sqlite.SQLiteDatabase;
 6 import android.support.v7.app.AppCompatActivity;
 7 import android.os.Bundle;
 8 import android.view.Menu;
 9 import android.view.MenuItem;
10 import android.widget.ListView;
11
12 import java.util.List;
13
14 import wuxianedu.com.sqllistview.DB.DBauxiliary;
15
16 public class MainActivity extends AppCompatActivity {
17
18     private MainAdapter mainAdapter;//构建数据源
19     private List list;//接收数据的LIST
20     private DBauxiliary db;//数据库操作类的实例
21
22     @Override
23     protected void onCreate(Bundle savedInstanceState) {
24         super.onCreate(savedInstanceState);
25         setContentView(R.layout.activity_main);
26         ListView listView = (ListView) findViewById(R.id.lv_liebiao);
27         db = DBauxiliary.getInstance(this);
28          list= db.select();
29         //构建数据源
30         mainAdapter = new MainAdapter(this,list);
31         //添加数据
32         listView.setAdapter(mainAdapter);
33     }
34     //Activity创建或者从被覆盖、后台重新回到前台时被调用
35     @Override
36     protected void onResume() {
37         super.onResume();
38         //重新获取list数据
39         list = db.select();
40         //给list赋值 更新
41         mainAdapter.setList(list);
42     }
43
44     @Override //菜单的点击事件
45     public boolean onCreateOptionsMenu(Menu menu) {
46         getMenuInflater().inflate(R.menu.menu,menu);
47         menu.findItem(R.id.add).setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
48             @Override
49             public boolean onMenuItemClick(MenuItem item) {
50                 //点击添加跳转
51                 Intent intent=new  Intent(MainActivity.this,UpdateActivity.class);
52                 startActivityForResult(intent,5);
53                 return false;
54             }
55         });
56         return super.onCreateOptionsMenu(menu);
57
58     }
59 }

MainAdapter.java此文件用来填充Adapter数据
  1 package wuxianedu.com.sqllistview;
  2
  3 import android.content.Context;
  4 import android.content.DialogInterface;
  5 import android.content.Intent;
  6 import android.support.v7.app.AlertDialog;
  7 import android.view.LayoutInflater;
  8 import android.view.View;
  9 import android.view.ViewGroup;
 10 import android.widget.BaseAdapter;
 11 import android.widget.Button;
 12 import android.widget.TextView;
 13 import android.widget.Toast;
 14
 15 import java.util.List;
 16
 17 import wuxianedu.com.sqllistview.DB.DBauxiliary;
 18
 19 /**
 20  * Created by Administrator on 2016/9/20.
 21  */
 22 public class MainAdapter extends BaseAdapter {
 23     private Context context;
 24     private List<JavaBean> list;//接收数据的LIST
 25     private DBauxiliary db;//数据库操作类的实例
 26     //适配器
 27     public MainAdapter(Context context,List<JavaBean> list){
 28         this.context = context;
 29         this.list = list;
 30     }
 31     //更新集合用
 32     public void setList(List<JavaBean> list) {
 33         this.list = list;
 34         notifyDataSetChanged();
 35     }
 36
 37     @Override
 38     public int getCount() {
 39         return list.size();
 40     }
 41
 42     @Override
 43     public Object getItem(int position) {
 44         return list.get(position);
 45     }
 46
 47     @Override
 48     public long getItemId(int position) {
 49         return position;
 50     }
 51
 52     @Override
 53     public View getView(final int position, View convertView, ViewGroup parent) {
 54        final HUi hui;
 55         if(convertView == null){
 56             hui = new HUi();
 57             final int wo ;
 58             wo = position;
 59             db = DBauxiliary.getInstance(context);
 60             convertView = LayoutInflater.from(context).inflate(R.layout.item_lie, null);
 61             hui.name = (TextView) convertView.findViewById(R.id.tv_name);
 62             hui.age = (TextView) convertView.findViewById(R.id.tv_age);
 63             hui.sex = (TextView) convertView.findViewById(R.id.tv_sex);
 64             hui.update = (Button) convertView.findViewById(R.id.but_name);
 65             hui.delete = (Button) convertView.findViewById(R.id.but_delete);
 66
 67             //
 68             //修改按钮
 69             hui.update.setOnClickListener(new View.OnClickListener() {
 70                 @Override
 71                 public void onClick(View v) {
 72                     Intent intent = new Intent(context,UpdateActivity.class);
 73                     int on = (int) hui.update.getTag();
 74                     JavaBean javabean = list.get(on);
 75                     intent.putExtra("name",javabean);
 76                     context.startActivity(intent);
 77
 78                 }
 79             });
 80             convertView.setTag(hui);
 81         }else{
 82             hui = (HUi) convertView.getTag();
 83         }
 84
 85         final JavaBean java = list.get(position);
 86         hui.update.setTag(position);
 87         hui.name.setText(java.getName());
 88         hui.age.setText(String.valueOf(java.getAge()));
 89         hui.sex.setText(java.getSex());
 90         final String naaa = java.getName();
 91         //构建删除对话框
 92         hui.delete.setOnClickListener(new View.OnClickListener() {
 93             @Override
 94             public void onClick(View v) {
 95                 AlertDialog.Builder builder = new  AlertDialog.Builder(context);
 96                 builder.setMessage("确定删除吗?");
 97                 builder.setPositiveButton("取消",null);
 98                 builder.setNegativeButton("确定", new DialogInterface.OnClickListener() {
 99                     @Override
100                     public void onClick(DialogInterface dialog, int which) {
101                         db.delete(naaa);
102                         list = db.select();
103                         setList(list);
104                         notifyDataSetChanged();
105                         Toast.makeText(context,"删除成功",Toast.LENGTH_SHORT).show();
106                     }
107                 }).show();
108
109             }
110         });
111         return convertView;
112     }
113
114     class HUi {
115         TextView name,age,sex;
116         Button update,delete;
117     }
118 }

UpdateActivity.java用于添加和修改数据
 1 package wuxianedu.com.sqllistview;
 2
 3 import android.content.ContentValues;
 4 import android.content.Intent;
 5 import android.support.v7.app.AppCompatActivity;
 6 import android.os.Bundle;
 7 import android.view.View;
 8 import android.widget.Button;
 9 import android.widget.EditText;
10 import android.widget.Toast;
11
12 import wuxianedu.com.sqllistview.DB.DBauxiliary;
13
14 public class UpdateActivity extends AppCompatActivity implements View.OnClickListener {
15
16     private DBauxiliary db;
17     private EditText ed_name,ed_sex,ed_age;
18     private JavaBean com;
19     private Button xiugai,shanchu;
20
21     @Override
22     protected void onCreate(Bundle savedInstanceState) {
23         super.onCreate(savedInstanceState);
24         setContentView(R.layout.activity_update);
25         ed_name= (EditText) findViewById(R.id.ed_name);
26         ed_age = (EditText) findViewById(R.id.ed_age);
27         ed_sex = (EditText) findViewById(R.id.ed_sex);
28         xiugai = (Button) findViewById(R.id.but_tianjia);
29         shanchu = (Button) findViewById(R.id.but_queding);
30         Intent on = getIntent();
31          com = (JavaBean) on.getSerializableExtra("name");
32         if(com == null){
33             shanchu.setVisibility(View.GONE);
34         }else{
35             xiugai.setVisibility(View.GONE);
36             ed_name.setText(com.getName()+"");
37             ed_age.setText(String.valueOf(com.getAge())+"");
38             ed_sex.setText(com.getSex()+"");
39         }
40         db = DBauxiliary.getInstance(UpdateActivity.this);
41 /*        ed_name.setText(com.getName()+"");
42         ed_age.setText(String.valueOf(com.getAge())+"");
43         ed_sex.setText(com.getSex()+"");*/
44         xiugai.setOnClickListener(this);
45         shanchu.setOnClickListener(this);
46
47     }
48     private void SqlInsert(){
49         ContentValues contentValues = new ContentValues();
50         contentValues.put("name",ed_name.getText().toString());
51         contentValues.put("age",ed_age.getText().toString());
52         contentValues.put("sex",ed_sex.getText().toString());
53         db.insert(contentValues);
54         Toast.makeText(UpdateActivity.this,"添加成功",Toast.LENGTH_SHORT).show();
55     }
56     //删除数据
57     private void SqlUpdate(){
58         ContentValues contentValues = new ContentValues();
59         contentValues.put("name",ed_name.getText().toString());
60         contentValues.put("age",ed_age.getText().toString());
61         contentValues.put("sex",ed_sex.getText().toString());
62         db.update(contentValues,com.getName());
63         Toast.makeText(UpdateActivity.this,"修改成功",Toast.LENGTH_SHORT).show();
64     }
65     //判断
66     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
67             if(requestCode != 5){
68
69             }
70     }
71
72     @Override
73     public void onClick(View v) {
74         switch (v.getId()){
75             case R.id.but_queding:
76                 SqlUpdate();
77                 break;
78             case R.id.but_tianjia:
79                 SqlInsert();
80                 break;
81         }
82     }
83 }

到这里所有功能就都写完了,我都写上注释了,如果有不明白的也可以留言,也可以加我Q,1171628833,本人刚安卓,小白一个,有同是小白的可以一起交流,共同成长,其他有一个Menu菜单,我没有写,因为不太明白,


转载于:https://www.cnblogs.com/langfei8818/p/5892195.html

Android高级-Android操作SQL数据管理,增删改查相关推荐

  1. VB6.0操作SQL Server——增删改查

    http://www.cnblogs.com/Miss-Lin/archive/2012/08/13/2635848.html 一.数据录入 通过VB向SQL Server数据库中录入数据,可以使用数 ...

  2. 怎么用php操作mysql删除数据库代码_如何使用php操作mysql的增删改查?

    php操作mysql的增删改查方法:1.插入语句[insert into 数据表名(字段1,字段2,....) values("值1","值2",..)]:2. ...

  3. C#操作Excel数据增删改查(转)

    C#操作Excel数据增删改查. 首先创建ExcelDB.xlsx文件,并添加两张工作表. 工作表1: UserInfo表,字段:UserId.UserName.Age.Address.CreateT ...

  4. jdbc链接mysql按照id查询_使用jdbc连接并操作Oracle数据库(增删改查IDUS)

    使用jdbc连接并操作Oracle数据库(增删改查IDUS) [oracle@zaibei-db ~]$ sqlplus /nolog SQL*Plus: Release 11.2.0.4.0 Pro ...

  5. eggjs增删改查MySQL,nodejs操作mysql实现增删改查

    首先需要安装mysql模块:npm install mysql –save 然后创建user数据表: 接着使用nodejs对数据库进行增删改查: //引入mysql模块 var mysql = req ...

  6. nodejs mysql 增删改查_nodejs操作mysql实现增删改查的实例

    首先需要安装mysql模块:npm install mysql --save 然后创建user数据表: 接着使用nodejs对数据库进行增删改查: .[活动]2017 CSDN博客专栏评选 [评论送书 ...

  7. SQL(一) —— 增删改查

    SQL基础模块 SQL(一) -- 增删改查 一.初识数据库 1.1 DBMS的种类 1.2 RDBMS的常见系统结构 1.3 SQL 二.增删改查 2.1 数据类型 2.2 数据库操作 2.3 数据 ...

  8. 【node】Sequelize常用操作、基本增删改查

    [node]Sequelize常用操作.基本增删改查 sequelize初始化 先初始化一个数据库实例 再初始化一个model实例 sequelize的数据类型 基本增删改查的写法 SELECT * ...

  9. SpringBoot操作MongoDB实现增删改查

    本篇博客主讲如何使用SpringBoot操作MongoDB. SpringBoot操作MongoDB实现增删改查 (1)pom.xml引入依赖 <dependency> <group ...

  10. Android sqlite数据库的使用(增删改查)

    sqlite 的简介 对于sqlite 就是一种轻型的嵌入式的数据库,多用于手机,车机等,至于他的原理百度有很多大佬对他的详细介绍,我就不在这里累述了. 今天主要是想记录一下sqlite的详细使用,我 ...

最新文章

  1. onpaste事件不生效_从实际开发中来看JavaScript事件循环的使用场景
  2. centos7arm进入图形化_CentOS 7 安装图形化界面
  3. python扫描proxy并获取可用代理ip列表
  4. python三层装饰器-Python自动化开发学习4-装饰器
  5. CodeForces 447C DZY Loves Sequences DP
  6. SmartFoxServer 2X Room的加入與建立
  7. spring中容器启动过程中初始化资源使用方法
  8. uploadify php处理程序,uploadify 后台处理
  9. Fiddler抓包5-接口测试(Composer)
  10. eclipse 隐藏项目_前5个有用的隐藏Eclipse功能
  11. angular 注入器配置_Angular2 多级注入器详解及实例
  12. 用babel cli编译用ES6写的JSX
  13. K8S_Google工作笔记0009---通过二进制方式_操作系统初始化
  14. MySQL中修改列属性时造成comment属性丢失
  15. Yate如何打开不同格式的音乐文件?
  16. Android应用程序消息处理机制(Looper、Handler)分析(3)
  17. Python设计模式:旁观者模式
  18. 三、用python实现平稳时间序列的建模
  19. 天天飞车六大研发经验
  20. 请在微信客户端打开链接

热门文章

  1. HEVC官方代码下载及码流分析软件使用
  2. sonar 配置sonarqube分析unity中的C# 代码
  3. 软件测试52讲-安全第一:渗透测试
  4. fiddler APP抓包设置
  5. 关于Jmeter关联,从概念讲起
  6. python3socket非阻塞在linux里无效_Linux下socket设置为非阻塞方式和fcntl系统调用
  7. 玩生死狙击找不到服务器怎么办,生死狙击手游进不了游戏解决方法 生死狙击手游进游戏诀窍...
  8. 转换php script类型,ECMAScript 类型转换
  9. e7用什么主板_主板当中的纽扣电池有什么用?电池没电了会怎样?
  10. 聚类算法实现:DBSCAN、层次聚类、K-means、