目录

ShapePreferences的使用

SharedPreferences的概述

增加数据

删除数据

修改数据

获取数据

清空数据

SqLite的简单介绍

Sqlite的使用

Sqlite数据库的创建

增加数据

更新数据

删除数据

查询数据


ShapePreferences的使用

SharedPreferences的概述

SharedPreferences是Android平台上一个轻量级的存储辅助类,用来保存应用的一些常用配置,它提供了String,set,int,long,float,boolean六种数据类型。SharedPreferences的数据以键值对的进行保存在以xml形式的文件中。在应用中通常做一些简单数据的持久化缓存。

增加数据

 //获取SharedPreferences对象SharedPreferences sharedPreferences=getSharedPreferences("user",MODE_PRIVATE);//获取Editor对象的引用SharedPreferences.Editor editor=sharedPreferences.edit();//将获取过来的值放入文件editor.putString("name","wcl");editor.putInt("age",21);// 提交数据editor.commit();

删除数据

//获取SharedPreferences对象SharedPreferences sharedPreferences2=getSharedPreferences("user",MODE_PRIVATE);//获取Editor对象的引用SharedPreferences.Editor editor2=sharedPreferences2.edit();editor2.remove("age");// 提交数据editor2.commit();break;

修改数据

 //获取SharedPreferences对象SharedPreferences sharedPreferences1=getSharedPreferences("user",MODE_PRIVATE);//获取Editor对象的引用SharedPreferences.Editor editor1=sharedPreferences1.edit();//将获取过来的值放入文件editor1.putString("name","czl");// 提交数据editor1.commit();

获取数据

//获取SharedPreferences对象SharedPreferences sharedPreferences3=getSharedPreferences("user",MODE_PRIVATE);//获取数据String name=sharedPreferences3.getString("name","");Toast.makeText(this,"Editor"+name,Toast.LENGTH_SHORT).show();break;

清空数据

 //获取SharedPreferences对象SharedPreferences sharedPreferences4=getSharedPreferences("user",MODE_PRIVATE);//获取Editor对象的引用SharedPreferences.Editor editor3=sharedPreferences4.edit();//清空数据editor3.clear();//提交数据editor3.commit();

实例代码:

package com.c201801080119.day_4;import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.ShareActionProvider;import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}public void click(View view) {switch (view.getId()){case R.id.button://获取SharedPreferences对象SharedPreferences sharedPreferences=getSharedPreferences("user",MODE_PRIVATE);//获取Editor对象的引用SharedPreferences.Editor editor=sharedPreferences.edit();//将获取过来的值放入文件editor.putString("name","wcl");editor.putInt("age",21);// 提交数据editor.commit();break;case R.id.button2://获取SharedPreferences对象SharedPreferences sharedPreferences1=getSharedPreferences("user",MODE_PRIVATE);//获取Editor对象的引用SharedPreferences.Editor editor1=sharedPreferences1.edit();//将获取过来的值放入文件editor1.putString("name","czl");// 提交数据editor1.commit();break;case R.id.button3://获取SharedPreferences对象SharedPreferences sharedPreferences2=getSharedPreferences("user",MODE_PRIVATE);//获取Editor对象的引用SharedPreferences.Editor editor2=sharedPreferences2.edit();editor2.remove("age");// 提交数据editor2.commit();break;case R.id.button4://获取SharedPreferences对象SharedPreferences sharedPreferences3=getSharedPreferences("user",MODE_PRIVATE);//获取数据String name=sharedPreferences3.getString("name","");Toast.makeText(this,"Editor"+name,Toast.LENGTH_SHORT).show();break;case R.id.button5://获取SharedPreferences对象SharedPreferences sharedPreferences4=getSharedPreferences("user",MODE_PRIVATE);//获取Editor对象的引用SharedPreferences.Editor editor3=sharedPreferences4.edit();//清空数据editor3.clear();//提交数据editor3.commit();break;}}
}
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"><Buttonandroid:id="@+id/button3"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="63dp"android:layout_marginEnd="1dp"android:layout_marginRight="1dp"android:onClick="click"android:text="删除数据"app:layout_constraintEnd_toEndOf="@+id/button2"app:layout_constraintTop_toBottomOf="@+id/button2" /><Buttonandroid:id="@+id/button"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginStart="117dp"android:layout_marginLeft="117dp"android:onClick="click"android:layout_marginTop="48dp"android:text="增加数据"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent" /><Buttonandroid:id="@+id/button2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:onClick="click"android:layout_marginStart="1dp"android:layout_marginLeft="1dp"android:layout_marginTop="57dp"android:text="修改数据"app:layout_constraintStart_toStartOf="@+id/button"app:layout_constraintTop_toBottomOf="@+id/button" /><Buttonandroid:id="@+id/button4"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginStart="4dp"android:onClick="click"android:layout_marginLeft="4dp"android:layout_marginTop="56dp"android:text="查询数据"app:layout_constraintStart_toStartOf="@+id/button3"app:layout_constraintTop_toBottomOf="@+id/button3" /><Buttonandroid:id="@+id/button5"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginStart="4dp"android:layout_marginLeft="4dp"android:onClick="click"android:layout_marginTop="56dp"android:text="清楚数据"app:layout_constraintStart_toStartOf="@+id/button4"app:layout_constraintTop_toBottomOf="@+id/button4" /></androidx.constraintlayout.widget.ConstraintLayout>

SqLite的简单介绍

SQLite 一个非常流行的嵌入式数据库,它支持 SQL 语言,并且只利用很少的内存就有很好的性能。此外它还是开源的,任何人都可以使用它。

Sqlite的使用

Sqlite数据库的创建

通过继承SQLiteOpenHelper类去实现,SQLiteOpenHelper有两个抽象方法onCreate()onUpgrade(),必须在自己的类中重写这两个方法,然后分别在这两个方法中实现创建升级数据库的逻辑。

package com.c201801080119.day_4;import android.content.Context;
import android.database.DatabaseErrorHandler;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.os.Build;import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.RequiresApi;class Demo extends SQLiteOpenHelper {public Demo(@Nullable Context context, @Nullable String name, @Nullable SQLiteDatabase.CursorFactory factory, int version) {super(context, name, factory, version);}public Demo(@Nullable Context context, @Nullable String name, @Nullable SQLiteDatabase.CursorFactory factory, int version, @Nullable DatabaseErrorHandler errorHandler) {super(context, name, factory, version, errorHandler);}@RequiresApi(api = Build.VERSION_CODES.P)public Demo(@Nullable Context context, @Nullable String name, int version, @NonNull SQLiteDatabase.OpenParams openParams) {super(context, name, version, openParams);}@Overridepublic void onCreate(SQLiteDatabase db) {String sting="create table user(id integer primary key autoincrement,username varchar(20),password varchar(20),age integer)";db.execSQL(sting);}@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {}
}

增加数据

调用insert方法

  ContentValues contentValues=new ContentValues();contentValues.put("username","cs");contentValues.put("password","123456");contentValues.put("age",21);sqLiteDatabase.insert("user",null,contentValues);

更新数据

调用update的方法

 ContentValues contentValues1=new ContentValues();contentValues1.put("username","css");sqLiteDatabase.update("user",contentValues1,"username=?",new String[]{"cs"});

删除数据

调用delete对象

  sqLiteDatabase.delete("user","username=?",new String[]{"czl"});

查询数据

 Cursor cursor=sqLiteDatabase.query("user",new String[]{"id","username","age"},"username=?",new String[]{"wcl"},null,null,null);while(cursor.moveToNext()){String id=cursor.getString(cursor.getColumnIndex("id"));String username=cursor.getString(cursor.getColumnIndex("username"));Log.i("Tomast",id+username);}

完整代码

package com.c201801080119.day_4;import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.ShareActionProvider;import android.content.ContentValues;
import android.content.SharedPreferences;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Toast;public class MainActivity extends AppCompatActivity {private Demo demo;private SQLiteDatabase sqLiteDatabase;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);demo=new Demo(MainActivity.this,"user.db",null,1);sqLiteDatabase=demo.getWritableDatabase();}public void click(View view) {switch (view.getId()){case R.id.button:ContentValues contentValues=new ContentValues();contentValues.put("username","cs");contentValues.put("password","123456");contentValues.put("age",21);sqLiteDatabase.insert("user",null,contentValues);break;case R.id.button2:ContentValues contentValues1=new ContentValues();contentValues1.put("username","css");sqLiteDatabase.update("user",contentValues1,"username=?",new String[]{"cs"});break;case R.id.button3:sqLiteDatabase.delete("user","username=?",new String[]{"czl"});break;case R.id.button4:Cursor cursor=sqLiteDatabase.query("user",new String[]{"id","username","age"},"username=?",new String[]{"wcl"},null,null,null);while(cursor.moveToNext()){String id=cursor.getString(cursor.getColumnIndex("id"));String username=cursor.getString(cursor.getColumnIndex("username"));Log.i("Tomast",id+username);}break;case R.id.button5:break;}}
}

SharedPreferences的使用与Sqlite的使用相关推荐

  1. OkHttp实现多线程断点续传下载,单例模式下多任务下载管理器,一起抛掉sp,sqlite的辅助吧

    丨版权说明 :<OkHttp实现多线程断点续传下载,单例模式下多任务下载管理器,一起抛掉sp,sqlite的辅助吧>于当前CSDN博客和乘月网属同一原创,转载请说明出处,谢谢. 最近项目需 ...

  2. 腾讯开源基于 mmap 的高性能 key-value 组件 MMKV

    腾讯微信团队宣布开源 MMKV ,这是基于 mmap 内存映射的 key-value 组件,底层序列化/反序列化使用 protobuf 实现,主打高性能和稳定性.MMKV 从 2015 年中至今,在 ...

  3. 腾讯开源项目盘点:WeUI,WePY,Tinker,Mars等

    开源展示了人类共同协作,成果分享的魅力,每一次技术发展都是站在巨人的肩膀上,技术诸多创新和发展往往就是基于开源发展起来的,没有任何一家网络公司可以不使用开源技术,仅靠自身技术而发展起来. 腾讯开源了个 ...

  4. android mmkv使用_MMKV解读

    一.首先看一下介绍(mmkv官方介绍) MMKV--基于 mmap 的高性能通用 key-value 组件 MMKV 是基于 mmap 内存映射的 key-value 组件,底层序列化/反序列化使用 ...

  5. 【转载】安卓APP架构

    注:本篇博文转载于  http://my.oschina.net/mengshuai/blog/541314?fromerr=z8tDxWUH 本文介绍了文章作者从事了几年android应用的开发,经 ...

  6. 从Zygote孵化frameworks进程,分析StartActivity流程中intent传递数据的最大值。

    Pangu-Immortal (Pangu-Immortal) · GitHub 当我们用Intent传输大数据时,有可能会出现错误: val intent = Intent(this@MainAct ...

  7. 第一篇|腾讯开源项目盘点:WeUI,WePY,Tinker,Mars等

    开源展示了人类共同协作,成果分享的魅力,每一次技术发展都是站在巨人的肩膀上,技术诸多创新和发展往往就是基于开源发展起来的,没有任何一家网络公司可以不使用开源技术,仅靠自身技术而发展起来. 腾讯开源了个 ...

  8. Android之面试题精选,自己收藏下

    1.android dvm 的进程和Linux的进程,应用程序的进程是否为同一个概念: 答:dvm是dalivk虚拟机.每一个android应用程序都在自己的进程中运行,都拥有一个dalivk虚拟机实 ...

  9. android面试题精选

    1.android dvm 的进程和Linux的进程,应用程序的进程是否为同一个概念: 答:dvm是dalivk虚拟机.每一个android应用程序都在自己的进程中运行,都拥有一个dalivk虚拟机实 ...

最新文章

  1. C#如何打开一个窗体,同时关闭该窗体
  2. 自己动手搭建DNS服务器
  3. 前端构建工具之争——Webpack vs Gulp 谁会被拍死在沙滩上
  4. 【大局观很关键】关于找程序的bug
  5. linux环境下中文乱码问题
  6. POJ - 1236 Network of Schools(强连通缩点)
  7. 20190408 Java中的Double类型计算
  8. oracle 查询所有组合,Oracle的组合条件查询
  9. python怎么测试程序_python如何测试程序
  10. cuid卡写入后锁死_CUID卡,CUID白卡,CUID门禁卡,CUID电梯卡,CUID可改写卡
  11. linux配置libpng环境变量_不同操作系统下 jdk 的配置
  12. 【caffe】基于CNN的年龄和性别检测
  13. VPP buffer不足
  14. SAP培训及ABAP学习入门必读
  15. 15-基于51单片机的篮球计时器
  16. Java pdf图书下载网站整理
  17. nginx配置详细说明
  18. 淘宝/天猫采集商家信息插件
  19. 【Python】列表生成式应用的八重境界
  20. 单像后方交会、pnp问题迭代计算的数学原理

热门文章

  1. 骑士旅行问题的试探性算法研究
  2. Lua游戏中常用到的一些动作
  3. java 响铃_怎么样编写一个java响铃程序?
  4. Python实践4-守护线程
  5. form表单往后台传日期
  6. C++结课大作业——职工管理系统
  7. 带你深层次理解什么是进制
  8. 聚焦45年职业生涯规划职业生涯3大阶段
  9. 阿里云centOS7安装好Nginx设置外网可以访问80端口
  10. 用combobox计算价钱_冷水机组价钱_宏晟博源