Android studio—SQlite注销账号(删除账号)

文章目录

  • Android studio—SQlite注销账号(删除账号)
    • 继上篇
    • 效果预览
    • 用户类
    • 完善数据库功能
    • 注销账号功能
      • 定义控件
      • 账号密码确定
      • 小弹窗警告
    • 总结

继上篇

上两篇篇我们完成了利用SQLite完成用户的注册与登录功能以及修改密码,有兴趣的同学可以回顾一下:
Android studio—SQlite数据库注册登录:https://blog.csdn.net/genijmni/article/details/106626300
Android studio—SQlite修改密码:https://blog.csdn.net/genijmni/article/details/106697445
在完成注册登录后,我们这次开发的功能就是:注销账号(删除账号)
多说无益,直接上效果展示:

效果预览


删除后的账号无法再继续登录,并且所有数据删除。

用户类

用户类不多说,自动补全Get、Set方法

public class User {private String name;private  int id;private  String password;public User(String name,String password){super();this.name = name;this.password = password;}public  int getId() {return  id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}@Overridepublic String toString() {return "User{id ="+ id + ", name = "+ name +",password ="+password +"}";}
}

完善数据库功能

上两篇的数据库使用到了增加方法(add)和修改方法(updata),这篇我们完善删除方法(delete)
三个方法一同贴上:

public class SQlite extends SQLiteOpenHelper {private SQLiteDatabase db;public SQlite(Context context){super(context,"db_test",null,2);db = getReadableDatabase();}@Overridepublic void onCreate(SQLiteDatabase db) {db.execSQL("CREATE TABLE IF NOT EXISTS user(" +"_id INTEGER PRIMARY KEY AUTOINCREMENT," +"name TEXT," +"password TEXT)");}@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {db.execSQL("DROP TABLE IF EXISTS user");onCreate(db);}public void add(String name,String password ){db.execSQL("INSERT INTO user(name,password)VALUES(?,?)",new Object[]{name,password});}public void delete(String name,String password ){db.execSQL( "DELETE FROM user WHERE name = ? AND password = ?",new Object[]{name,password});}public void updata(String name,String password){db.execSQL("UPDATE user SET password =? ",new Object[]{password});}public ArrayList<User> getAllDATA(){ArrayList<User> list = new ArrayList<User>();Cursor cursor = db.query("user",null,null,null,null,null,"name DESC");while(cursor.moveToNext()){String name = cursor.getString(cursor.getColumnIndex("name"));String password = cursor.getString(cursor.getColumnIndex("password"));list.add(new User(name,password));}return list;}
}

SQLite的功能基本完成,增加、删除、修改,还剩下一个查看。最后一个功能看情况完善。

注销账号功能

注销账号需要:
1.小弹窗警告提醒,删除后果
2.通过账号密码验证是否是本人行为
首先需要新建一个Acitity.

定义控件

private EditText username;
private EditText userpassword;
private SQlite mSQlite;
private Button ready;
private  Button back;

对控件进行绑定:

ready =findViewById(R.id.reday);
back = findViewById(R.id.back);
username= findViewById(R.id.userName);
userpassword=findViewById(R.id.userpassword);

账号密码确定

账号密码确定采用相同的认证方法,对输入的内容对比数据库数据。
删除采用数据库的删除方法:

mSQlite.delete(name,password);

当输入数据与数据库原始数据对应,即可完成注销账号操作:

ready.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {String name = username.getText().toString().trim();String password = userpassword.getText().toString().trim();if (TextUtils.isEmpty(name)||TextUtils.isEmpty(password)){Toast.makeText(deleteActivity.this,"选项不能为空",Toast.LENGTH_SHORT).show();return;}ArrayList<User> data = mSQlite.getAllDATA();boolean userdata = false;for (int i = 0; i < data.size(); i++) {User user = data.get(i);   //可存储账号数量if (name.equals(user.getName()) && password.equals(user.getPassword())) {userdata = true;break;} else {userdata = false;}}if (userdata){mSQlite.delete(name,password);Toast.makeText(deleteActivity.this,"注销成功",Toast.LENGTH_SHORT).show();Intent intent1 = new Intent(deleteActivity.this,MainActivity.class);startActivity(intent1);finish();}}
});
mSQlite = new SQlite(deleteActivity.this);

用户注销的功能到此就大致完成了,如果你需要继续优化,就往下看。
删除一个东西前,系统对我们进行提醒。这里我就使用最常见的小弹窗警告方法。

小弹窗警告

先预览一下弹窗效果

首先我们需要一个空闲的XML布局文件,方便我们使用。
在这个XML文件中,我们不需要进行布局。
并且在注销账户的按钮上添加一个属性:

android:onClick="delete"

方便我们点击触发事件。
在需要弹出的页面,调用这个XML布局。

final  View view1 = getLayoutInflater().inflate(R.layout.activity_delete,null);

主题功能代码写在主类之中,写在onCreate方法之外:

public void delete(View view){AlertDialog.Builder builder = new AlertDialog.Builder(this);builder.setTitle("是否确定注销账号");builder.setMessage("注销账号会使你所有资料清楚,确认是否注销账号");final  View view1 = getLayoutInflater().inflate(R.layout.activity_delete,null);builder.setView(view1);builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialogInterface, int which) {Intent intent1 = new Intent(Main2.this,deleteActivity.class);startActivity(intent1);finish();}});builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialogInterface, int which) {}});builder.show();
}

这里需要注意的是:“确定”和“取消”采用的是两个不同的Button属性控件

 builder.setPositiveButton("确定", new DialogInterface.OnClickListener()builder.setNegativeButton("取消", new DialogInterface.OnClickListener()

一个采用的是setPositiveButton,另一个是setNegativeButton,自动生成时需要观察清楚。
若都使用同一个属性,在弹窗时会只有一个按钮。

总结

通过对数据库的验证,以及对数据库功能的完善,能够完成对用户的账户注销。
并且通过小弹窗的方式进行提醒注销后果。
我们下篇讲讲完善登录注册功能,增加了一些新技巧功能

Android studio—SQlite注销账号(删除账号)相关推荐

  1. Android studio—SQlite数据库注册登录

    Android studio-SQlite数据库注册登录 文章目录 Android studio-SQlite数据库注册登录 创建用户类 创建数据库 注册写入数据库 登录读取数据库 效果展示 布局文件 ...

  2. Android Studio SQLite数据库应用(一)

    Android Studio SQLite数据库应用(一) 版本:Android Studio 1.5.1 创建数据库 升级数据库 CRUD数据操作 SQLite (英语发音:/ˌɛskjuːɛlˈl ...

  3. Android Studio SQLite 数据库 增删改查 简单

    源码 效果展示     所有操作都在这个界面完成,操作完直接显示 设计     一个class用来创建数据库,建表,一个activity用来执行增删改查操作 代码 DatebaseHlper impo ...

  4. android studio inspect code,Android Studio使用inspect code删除 unused import

    项目经常需要从别的项目复制一些文件过来,但是经常出现大片的导包unused import,但是我用自动导包并没有效果,必须把这些错误的导包手动删除才可以导入正确的包,虽然文件不多,手动删除是可以完成的 ...

  5. android studio svn清除,Android Studio SVN 无法提交删除

    推荐文章 Search很重要 好多时候我们记忆都是凭关键字记忆的,所以搜索也是凭关键字搜索,在实际的搜索中经常需要根据关键字构造正则表达式 Logcat很重要 Android studio动不动一下子 ...

  6. android studio登录注销,Android Studio开发基础之动态注册与注销BroadcastReceiver

    1.New→Other→BroadcastReceiver package com.example.lhb.startservice; import android.content.Broadcast ...

  7. android studio sqlite操作代码片段

    SQLiteDatabase db;Cursor cur; SimpleCursorAdapter adapter; // 打开或创建数据库db = openOrCreateDatabase(DB_N ...

  8. Android studio—密码规范与密码小眼睛

    Android studio-密码规范与密码小眼睛 文章目录 Android studio-密码规范与密码小眼睛 回顾博客 具体功能完善 效果预览 规范密码 密码小眼睛 密码可见和不可见 本文主要对博 ...

  9. Android Studio 编译时报文件不能删除,编译失败

    在使用android studio 进行android 开发学习的时候,报android studio 无法删除app\build\outputs模块下部分文件,导致编译失败. 出现这种情况后,自己进 ...

最新文章

  1. python小游戏系列井字棋,儿时的回忆
  2. threshold函数
  3. 第一次用51的博客,记录一下笔记
  4. 我的小作品(烂笔头)
  5. scrum in agile development
  6. Python开发Day07(学生选课)
  7. 计算机错误 引用无效名称,有关无效的引用的疑难解答
  8. C语言:斐波那契数列
  9. BDTC 2017 | 聚焦AI,十位资深专家分享金融大数据最佳实践
  10. HDU-4826 Labyrinth(DP)
  11. win7开机显示计算机无法启动,win7无法开机怎么办?解决开机报错代码C0000034的方法...
  12. js:nodejs简单的Http服务器搭建
  13. python通过接口判断公共节假日
  14. 信息安全体系建设☞数据完整性检查--信息安全开源工具分享
  15. 第五届中国网络安全大会(NSC2017)
  16. 【3D视觉原理】2-3D传感器原理
  17. Mean Average Precision(MAP):平均精度均值
  18. jdk的环境变量,javac不是内部命令,也不是可运行的程序”的解决
  19. 如何修改网上下载word简历模板的照片
  20. linux 跳过overwrite确认

热门文章

  1. 【c++】注册OCX控件
  2. python中如何定义数组_python如何创建数组?
  3. python读写文件,CSV和Excel
  4. 分享一些免费调用的API网站,快来看看
  5. DB2数据库学习随笔
  6. 可视化图表告诉你,这部让网友直呼过瘾的国产剧究竟火在哪里
  7. Linux之kill命令基本使用
  8. java 滚动条 颜色_滚动条颜色样式设置
  9. Unity3D优化技巧系列三
  10. c语言实现二叉树的线索化和线索二叉树的遍历