SharedPreferences案例
16lz
2021-01-25
SharedPreferences是轻量级的存储类 存储一些配置参数,比如用户名 密码等 存储的数据是以键值对保存在XML中
运行界面
用户交互界面
activity_main.xml
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:textSize="40sp" android:text="Welcome you" />RelativeLayout>
activity_login.xml
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/logintop_roundbg" android:padding="@dimen/activity_horizontal_margin"> <EditText android:id="@+id/etName" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@android:drawable/edit_text" android:drawableLeft="@drawable/icon_user" android:drawablePadding="10dp" android:ems="10" android:hint="@string/etName"> <requestFocus /> EditText> <EditText android:id="@+id/etPassword" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/etName" android:background="@android:drawable/edit_text" android:drawableLeft="@drawable/icon_pass" android:drawablePadding="10dp" android:ems="10" android:hint="@string/etPass" android:inputType="textPassword"> <requestFocus /> EditText> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/etPassword"> <CheckBox android:id="@+id/cbIsRememberPass" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="@string/cbIsRememberPass" android:textSize="20sp" /> <Button android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:background="@drawable/btn_select" android:text="@string/btnLogin" android:onClick="login" /> LinearLayout>RelativeLayout>
login_top.xml
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/logintop_roundbg" android:padding="@dimen/activity_horizontal_margin"> <EditText android:id="@+id/etName" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@android:drawable/edit_text" android:drawableLeft="@drawable/icon_user" android:drawablePadding="10dp" android:ems="10" android:hint="@string/etName"> <requestFocus /> EditText> <EditText android:id="@+id/etPassword" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/etName" android:background="@android:drawable/edit_text" android:drawableLeft="@drawable/icon_pass" android:drawablePadding="10dp" android:ems="10" android:hint="@string/etPass" android:inputType="textPassword"> <requestFocus /> EditText> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/etPassword"> <CheckBox android:id="@+id/cbIsRememberPass" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="@string/cbIsRememberPass" android:textSize="20sp" /> <Button android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:background="@drawable/btn_select" android:text="@stri* ng/btnLogin" android:onClick="login" /> LinearLayout>RelativeLayout>
界面交互代码
LoginActivity类
package cn.edu.bzu.case_login;import android.content.Context;import android.content.Intent;import android.content.SharedPreferences;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.CheckBox;import android.widget.EditText;import android.widget.Toast;public class LoginActivity extends AppCompatActivity { private EditText etName; private EditText etPassword; private CheckBox cbIsRememberPass; private SharedPreferences sharedPreferences; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); initViews(); sharedPreferences = getSharedPreferences("rememberpassword", Context.MODE_PRIVATE); boolean isRemember = sharedPreferences.getBoolean("rememberpassword", false); if (isRemember) { String name = sharedPreferences.getString("name", ""); String password = sharedPreferences.getString("password", ""); etName.setText(name); etPassword.setText(password); cbIsRememberPass.setChecked(true); } } public void initViews() { etName = (EditText) findViewById(R.id.etName); etPassword = (EditText) findViewById(R.id.etPassword); cbIsRememberPass = (CheckBox) findViewById((R.id.cbIsRememberPass)); } public void login(View view) { String name = etName.getText().toString(); String password = etPassword.getText().toString(); if ("admin".equals(name) && "123456".equals(password)) { SharedPreferences.Editor editor = sharedPreferences.edit(); if (cbIsRememberPass.isChecked()) { editor.putBoolean("rememberpassword", true); editor.putString("name", name); editor.putString("password", password); } else { editor.clear(); } editor.commit(); Intent intent = new Intent(this, MainActivity.class); startActivity(intent); finish(); } else { Toast.makeText(this, "账号或密码有误", Toast.LENGTH_SHORT).show(); } }}
清单配置文件
AndroidManifest.xml
android<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="cn.edu.bzu.case_login"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".LoginActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> intent-filter> activity> <activity android:name=".MainActivity" android:label="main">activity> application>manifest>
更多相关文章
- android 主界面 底部菜单 DEMO
- android listView EditText获取焦点
- [置顶] Android开发本地及网络Mp3音乐播放器(一)前言
- 安卓activity 设置Activity背景色为透明
- android EnMicroMsg.db安卓微信数据库获得密码的源码
- android 实现在titlebar上显示进度条
- [置顶] Android第三方库学习清单
- android imageview设置图片的小问题
- android设置动态壁纸 (Wallpaper) 介绍