目的
掌握Android开发中的EditText的使用,相关知识和如何跳转界面,以及实现PIN解锁功能
相关技术、及其使用
1、EditText的相关属性
(1)background :设置文本文件的背景视图
(2)centerHorizontal:居中显示
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/main"
android:layout_centerHorizontal="true"
(3)below:在谁的下面显示
(4)padding:控件内边距
android:layout_below="@+id/tv_alert"
android:layout_marginTop="30dp"
android:paddingLeft="50dp"
(5)inputType:输入的文本类型
(6)textColor和textSize:输入文本的颜色和大小
android:textColor="@color/colorGray"
android:textSize="@dimen/dimen_textView"
android:inputType="textPassword"
(7)maxLength和maxLines:输入文本的长度和文本的行数
(8)letterSpacing:输入文本之间的间隔距离
android:maxLength="6"
android:maxLines="1"
android:cursorVisible="false"
android:letterSpacing="0.6"
2、实现PIN解锁功能
(1)xml配制文件里面添加背景图片,文本提示框和文本输入框,并添加相应id方便代码调用
(2)onCreate方法里面通过findViewById获取xml控件并全局化
//获取xml的控件 并全局化
private TextView mTextView;
private EditText mEditText;
//设置原始密码
private String password;
//记录第一次输入密码的值
private String firstInput;
mTextView = findViewById(R.id.tv_alert);
mEditText = findViewById(R.id.et_password);
(3)通过getResources()方法获取保存密码的文件资源(管理资源对象)
//获取保存的密码
//获取管理资源对象Resource
Resources res = getResources();
//通过这个对象获取string.xml里面对应的字符串
String fileName = res.getString(R.string.password_file_name);
(4)通过SharedPreferences 来获取保存密码的文件,并找到对应的value并显示提示文本
//获取共享的sp对象:1、文件不存在就创建 2、文件存在就打开
final SharedPreferences sp = getSharedPreferences(fileName,MODE_PRIVATE);
//通过key获取对应的value
password = sp.getString("pwd",null);
//显示提示文本
if(password == null){
mTextView.setText("请设置密码");
}else {
mTextView.setText("请输入密码");
}
(5)用addTextChangedListener监听内容改变的事件在afterTextChanged方法里面判断密码设置与否,输入正确与否
@Override
public void afterTextChanged(Editable editable) {
//获取文本内容
String inputPassword = editable.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("pwd",firstInput);
editor.commit();//保存
}else {
//密码不正确
mTextView.setText("两次密码不一致,请重新输入");
//清空
firstInput = null;
mEditText.setText("");
}
}
}else {
//密码设置过了
if(inputPassword.equals(password)){
//密码正确
mTextView.setText("密码正确");
//跳转
goToNext();
}else {
//不正确
mTextView.setText("密码错误,请重新输入");
//清空
mTextView.setText("");
}
}
}
}
});
(6)通过创建goToNext方法跳转界面
(1.1)创建第二个界面
(1.2)创建Intent确定跳转界面
private void goToNext(){
//创建一个Intent确定跳转界面
//1、显示意图 2、隐式意图(系统界面)
Intent intent = new Intent(this,SecendActivity.class);
//跳转
startActivity(intent);
}
PS
从开学到今天已经超过一周的事件没有学习Android开发今天学的有点生疏,但是,今天的知识还是挺简单的就学习一个EditText的操作和SharePereferenc 和TextChangedListenr监听器的使用 。感觉今天学的东西虽然依旧比较模糊但是还是能够听得懂。
网友评论