介绍
数据保存分类(目前主流):SP、SQLite、Room 1 SP:sharedPreference首选项 很小,简单的数据可以保存在SP window 的.ini文件,android 的.xml文件(存储格式是key-value) 存储软件的配置信息(比如自动登录,记住密码) 不能存太多的信息,因为当程序运行首选项里的数据会全部加载进内容 把数据保存到app本身 2 SQLite/Room:存储比如列表信息
SQLite是数据库:早期的数据库,更加原生 Room是数据库:后出的数据库,更加简洁
SP的简单使用
MainActivity.java
package com.example.sp; import androidx.appcompat.app.AppCompatActivity; import android.annotation.SuppressLint; import android.content.Context; import android.content.SharedPreferences; import android.os.Bundle; import android.view.View; import android.widget.Toast; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void saveToSP(View view) { // 第一个参数是sp的名字 xml配置文件的名字 // 第二个参数是保存时候用到的模式(常规(Context.MODE_PRIVATE):每次保存都会覆盖当前数据) // 追加(Context.MODE_APPEND) 每次保存数据会追加到后面 SharedPreferences sp = getSharedPreferences("SP", Context.MODE_PRIVATE); sp.edit().putString("123","ljj").apply(); } public void getSpDATA(View view) { SharedPreferences sp = getSharedPreferences("SP", Context.MODE_PRIVATE); // 第2个参数:如果第一个参数key获取到的值是null,就用第二个参数的值代替 String value = sp.getString("123", "默认值"); Toast.makeText(this,""+value,Toast.LENGTH_SHORT).show(); } }
activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" xmlns:android="http://schemas.android.com/apk/res/android"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="保存至sp" android:onClick="saveToSP"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="拿出数据从sp" android:onClick="getSpDATA"/> </LinearLayout>
保存后会生成sp.xml文件 xml文件在data-data-项目名字下面