『Android Studio』利用SharedPreferences类创建一个登录页面

SharedPreferences是Android中一个轻量级的存储类,常用于保存app的配置数据,例如登录凭证等。通过生成.xml文件来保存数据,数据存放于/data/data/<Package Name>/shared_perfs目录下。

使用方法

存储数据

使用SharedPreferences存储数据时,首先要获取SharedPreferences对象,然后通过该对象获取到Editor对象,最后调用调用Editor对象的相关方法存储数据。具体代码如下所示:

SharedPreferences sharedPreferences=getSharedPreferences("user",Context.MODE_PRIVATE);
        Editor editor=sharedPreferences.edit();
        //存入数据
        editor.putString("username","admin");
        editor.putString("password","123456");
       //提交数据
        editor.commit();

getSharedPreferences(name,mode)第一个参数name用于指定存储数据的文件名,不用带.xml后缀,保存时会自动补全;第二个参数是指定文件的操作模式,共有四种模式分别为:

  1. MODE_APPEND——追加方式存储
  2. MODE_PRIVATE——私有方式存储,其他应用无法访问
  3. MODE_WORLD_READABLE——表示当前文件可以被其他应用读取
  4. MODE_WORLD_WRITEABLE——表示当前文件可以被其他应用写入

读取数据

使用SharedPreferences存储数据时,只需创建SharedPreferences对像,然后使用该对象从对应的key取值即可。

SharedPreferences sharedPreferences=Context.getSharedPreferences();
        String username=sharedPreferences.getString("username");
        String password=sharedPreferences.getString("password");

删除数据

使用SharedPreferences删除数据时,首先需要获取到Editor对象,然后调用该对象的remove()方法或者clear()方法删除数据,最后提交。
remove()方法和clear()方法的区别在于remove()方法只删除某一特定数据,而clear()方法则删除所有数据。

SharedPreferences sharedPreferences=getSharedPreferences("user",Context.MODE_PRIVATE);
        Editor editor=sharedPreferences.edit();
        editor.remove("username");
        editor.clear();
        editor.commit();

案例内容:

创建一个登录页面,该页面包括两个输入框(用户名,密码),一个复选框(记住账号密码),一个登录按钮,一个取消按钮。当用户输入正确的账号密码后,如果勾选了复选框则将账号和密码利用SharedPreferences类将数据存储起来;如未勾选则将已保存的数据清除。

运行环境

  • Windows 10
  • Android Studio Arctic Fox (2020.3.1)
  • jdk1.7.0_67

具体代码

创建布局

首先我们要明确需要做的主体框架

20211110221024.jpg

布局采用的时线性布局,要做成图中的样子,我们必须利用LinearLayout嵌套,父LinearLayout是全局的布局方式,可以看出,下方三个子LinearLayout是按竖直方向排列的,所以全局布局方式应该为线性垂直布局。
子布局①中,有一个TextView(用户名),一个EditText输入框,按水平方向排列,其他两个子布局也一样,所以它们都为线性水平布局,构思好后,敲出代码。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
    android:orientation="vertical">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="用户名:"
            android:textSize="16dp"/>
        <EditText
            android:id="@+id/et_username"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textSize="16dp"/>
    </LinearLayout>
    <Li
好的,这是一个比较详细的问题,我会尽力回答。首先,我们需要了解一下Activity的生命周期方法。Activity的生命周期方法包括: 1. onCreate():Activity被创建时调用,通常用来初始化界面和变量。 2. onStart():Activity变为可见时调用,通常用来启动一些耗时操作。 3. onResume():Activity获得焦点时调用,通常用来恢复一些资源。 4. onPause():Activity失去焦点时调用,通常用来释放一些资源。 5. onStop():Activity变为不可见时调用,通常用来停止一些操作。 6. onDestroy():Activity被销毁时调用,通常用来释放一些资源。 接下来,我们来看一下如何利用SharedPreferences设计一个便签条。 1. 在布局文件中添加一个EditText控件,用于输入便签内容。 2. 在代码中使用SharedPreferences来保存和获取便签内容。 3. 在Activity的生命周期方法中调用SharedPreferences的方法来实现保存和获取便签内容。 下面是实现的具体步骤: 1. 在布局文件中添加一个EditText控件,例如: ```xml <EditText android:id="@+id/notesEditText" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="请输入便签内容"/> ``` 2. 在Activity中定义SharedPreferences对象和SharedPreferences.Editor对象,例如: ```java private SharedPreferences mSharedPreferences; private SharedPreferences.Editor mEditor; ``` 在onCreate()方法中初始化这些对象: ```java mSharedPreferences = getSharedPreferences("notes", MODE_PRIVATE); mEditor = mSharedPreferences.edit(); ``` 3. 在onResume()方法中使用SharedPreferences的getString()方法来获取便签内容,并将其设置到EditText控件中: ```java String notes = mSharedPreferences.getString("notes", ""); EditText notesEditText = findViewById(R.id.notesEditText); notesEditText.setText(notes); ``` 4. 在onPause()方法中使用SharedPreferences的putString()方法来保存便签内容: ```java EditText notesEditText = findViewById(R.id.notesEditText); String notes = notesEditText.getText().toString(); mEditor.putString("notes", notes); mEditor.apply(); ``` 这样,每次修改便签内容时,都会自动保存修改,并在下次打开应用时恢复之前的便签内容。 希望这个回答能够帮到你!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ECHK1NG

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值