1.配置xml文件
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/bg"
/>
<TextView
android:id="@+id/tv_alert"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="请设置密码"
android:textColor="@color/colorGray"
android:textSize="@dimen/dimen_textView"
android:textAlignment="center"
android:layout_marginTop="80dp"
/>
<!--文本输入框-->
<EditText
android:id="@+id/et_password"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/bg1"
android:layout_centerInParent="true"
android:layout_below="@+id/tv_alert"
android:layout_marginTop="30dp"
android:paddingLeft="50dp"
android:textColor="@color/colorGray"
android:textSize="30dp"
android:inputType="textPassword"
android:maxLength="6"
android:maxLines="1"
android:cursorVisible="false"
android:letterSpacing="0.6"
/>
</RelativeLayout>
2.全局化控件及变量,并且利用SharedPreferences方法实现密码的读取保存
private TextView mTextView;
private EditText mEditText;
private String password;
private String firstInput;
@Override
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//获取xml的控件
mTextView=findViewById(R.id.tv_alert);
mEditText=findViewById(R.id.et_password);
//获取保存的密码
//获取管理资源对象Resources
Resources res=getResources();
//通过这个对象获取String.xml里面对应的字符串
final String filename=res.getString(R.string.password_file_name);
//获取共享的sp对象:1.文件不存在就创建,存在就打开
final SharedPreferences sp= getSharedPreferences(filename,MODE_PRIVATE);
3.相关逻辑以及对控件的控制
//通过key获取对应的value
password=sp.getString("hsl1",null);
//显示提示文本
if(password==null){
mTextView.setText("请设置密码");
}else{
mTextView.setText("请输入密码");
}
//监听内容改变的事件
mEditText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void afterTextChanged(Editable s) {
//获取文本内容
String inputPassword= s.toString();
//判断是不是6个
if(inputPassword.length()==6){
//判断是不是第一次
if(password==null){
//设置密码
if(firstInput==null){
//设置密码的第一次
firstInput=inputPassword;
//提示确认密码
mTextView.setText("请确认密码");
//清空
mEditText.setText("");
}else{
//确认密码
if(firstInput.equals(inputPassword)){
//两次密码一致
mTextView.setText("设置密码成功");
//保存密码
SharedPreferences.Editor editor=sp.edit();
editor.putString("hsl",firstInput);
editor.commit();
goToNext();
}else{
mTextView.setText("两次密码不一致,请重新设置");
firstInput=null;
mEditText.setText("");
}
}
}else{
//密码设置过了
if(inputPassword.equals(password)){
//密码正确
goToNext();
}else {
//不正确
mTextView.setText("密码错误请重新输入");
//清空
mTextView.clearComposingText();
}
}
}
}
});
}
4.用goToNext方法来进行跳转界面,以及4大组件的介绍
private void goToNext(){
//创建一个Intent确定跳转的界面
//1.显示意图2.隐式意图(系统界面)
Intent intent=new Intent(this,Main2Activity.class);
//跳转
startActivity(intent);
}
}
/**
* 跳转到下一个界面
* 4大组件
* 1.Activity界面
* 2.Server 服务 后台做的事情
* 3.ContentProvider 内容提供者 不同程序间数据交互
* 4.BroadcastReceiver 广播接收者(通知)
*
* intent作为数据传递
* inttent:意图(跳到哪个界面,要不要带参数)
*
*/
5.心得体会
今天的内容比较简单,让自己的状态稍微回来了一点,继续努力吧