【Android studio】学号及姓名的输入保存页面

这篇具有很好参考价值的文章主要介绍了【Android studio】学号及姓名的输入保存页面。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、设计需求

设计一个页面有两个编辑框,分别输入学号和姓名。有两个按钮,一个是修改按钮,当按下修改按钮,编辑框可以进行编辑;一个是保存按钮,当按下保存按钮,使编辑框显示当前的内容并且编辑框不可编辑,此外,在关闭app之后再次打开app,编辑框内容是按下保存按钮之后的内容。

二、程序文件

布局文件activity_main.xml的代码如下:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="16dp"
    tools:context=".MainActivity">

    <EditText
        android:id="@+id/nameEditText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="姓名"
        android:enabled="false" />

    <EditText
        android:id="@+id/idEditText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="学号"
        android:enabled="false" />

    <Button
        android:id="@+id/modifyButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="修改" />

    <Button
        android:id="@+id/saveButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="保存" />

</LinearLayout>

对应的MainActivity.java文件代码如下:

package com.example.myapplication;

import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

    private EditText idEditText; // 学号编辑框
    private EditText nameEditText; // 姓名编辑框
    private Button modifyButton; // 修改按钮
    private Button saveButton; // 保存按钮

    private String currentId; // 当前学号
    private String currentName; // 当前姓名
    private boolean isEditable = false; // 编辑框是否可编辑的标志

    private SharedPreferences sharedPreferences; // SharedPreferences对象,用于存储数据

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // 初始化视图组件
        idEditText = findViewById(R.id.idEditText);
        nameEditText = findViewById(R.id.nameEditText);
        modifyButton = findViewById(R.id.modifyButton);
        saveButton = findViewById(R.id.saveButton);

        // 获取SharedPreferences实例
        sharedPreferences = getSharedPreferences("MyPrefs", MODE_PRIVATE);

        // 修改按钮的点击监听器
        modifyButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                isEditable = true;
                idEditText.setEnabled(true);
                nameEditText.setEnabled(true);
            }
        });

        // 保存按钮的点击监听器
        saveButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                isEditable = false;
                currentId = idEditText.getText().toString();
                currentName = nameEditText.getText().toString();
                idEditText.setEnabled(false);
                nameEditText.setEnabled(false);

                // 保存编辑框的内容到SharedPreferences
                SharedPreferences.Editor editor = sharedPreferences.edit();
                editor.putString("id", currentId);
                editor.putString("name", currentName);
                editor.apply();
            }
        });
    }

    @Override
    protected void onResume() {
        super.onResume();
        if (!isEditable) {
            idEditText.setEnabled(false);
            nameEditText.setEnabled(false);

            // 从SharedPreferences加载编辑框的内容
            currentId = sharedPreferences.getString("id", "");
            currentName = sharedPreferences.getString("name", "");
            idEditText.setText(currentId);
            nameEditText.setText(currentName);
        }
    }
}

代码逻辑如下:

  • onCreate() 方法:在应用程序启动时调用,用于初始化界面组件和设置按钮的点击监听器。
  • modifyButton 点击监听器:当点击修改按钮时,将使编辑框变为可编辑状态。
  • saveButton 点击监听器:当点击保存按钮时,将获取编辑框中的学号和姓名,并将其保存到 SharedPreferences 中。
  • onResume() 方法:在应用程序恢复活动状态时调用,用于从 SharedPreferences 中加载保存的学号和姓名,并设置到编辑框中。

三、SharedPreferences介绍

SharedPreferences 是 Android 提供的一种轻量级的存储机制,用于在应用程序中存储和检索简单的键值对数据。它是基于键值对的文件存储系统,以 XML 格式保存数据,并将其存储在应用程序的私有目录中。

常见的操作步骤如下:

  • 获取 SharedPreferences 实例:通过调用 getSharedPreferences() 方法或 getPreferences() 方法获取 SharedPreferences 实例。getSharedPreferences() 方法用于获取具有自定义名称的 SharedPreferences 实例,而 getPreferences() 方法获取默认名称的 SharedPreferences 实例。
SharedPreferences sharedPreferences = getSharedPreferences("MyPrefs", MODE_PRIVATE);
  • 编辑 SharedPreferences:通过调用 SharedPreferences 实例的 edit() 方法获取 SharedPreferences.Editor 实例,从而可以开始编辑 SharedPreferences 文件。然后,可以使用 SharedPreferences.Editor 实例的方法来添加、修改或删除数据。
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("key", "value"); // 添加或修改数据
editor.remove("key"); // 删除数据
  • 提交编辑:在完成对 SharedPreferences 文件的修改后,必须调用 SharedPreferences.Editor 实例的 apply() 方法或 commit() 方法来提交编辑,以确保修改生效。
editor.apply(); // 异步提交修改
editor.commit(); // 同步提交修改
  • 读取数据:通过 SharedPreferences 实例的 getXXX() 方法(例如 getString()、getInt()、getBoolean() 等)读取已保存的数据。
String value = sharedPreferences.getString("key", defaultValue); // 读取字符串数据,可设置默认值

四、结果展示

点击修改按钮,可以对姓名和学号编辑框进行编辑。当点击保存按钮,可以对信息进行保存,同时锁死编辑框,使编辑框无法编辑,直到再次点击修改按钮。

当APP退出重开时,会显示上次保存的结果。

【Android studio】学号及姓名的输入保存页面,Android,android studio,android

未来可期

文章到这里就要结束了,但故事还没有结局

如果本文对你有帮助,记得点个赞👍哟,也是对作者最大的鼓励🙇‍♂️。

如有不足之处可以在评论区👇多多指正,我会在看到的第一时间进行修正

作者:爱打瞌睡的CV君
CSDN:https://blog.csdn.net/qq_44921056
本文仅用于交流学习,未经作者允许,禁止转载,更勿做其他用途,违者必究。文章来源地址https://www.toymoban.com/news/detail-546453.html

到了这里,关于【Android studio】学号及姓名的输入保存页面的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包