软件编程
位置:首页>> 软件编程>> Android编程>> Android实现记住账号密码功能

Android实现记住账号密码功能

作者:Red&&Black  发布时间:2021-10-02 01:51:24 

标签:Android,账号密码

本文实例为大家分享了Android实现记住账号密码的具体代码,供大家参考,具体内容如下

布局

一个复选框


<CheckBox
   android:id="@+id/checkbox"
   android:radius="5dp"
   android:text="记住我"
   android:layout_marginLeft="20dp"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"/>

代码


public class MainActivity extends AppCompatActivity implements View.OnClickListener{

private CheckBox checkBox;

@Override
protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 checkBox = findViewById(R.id.checkbox);
 SharedPreferences sp = getSharedPreferences("items",MODE_PRIVATE);

/**
  * getBoolean(name,defaultValue) 若没有name,则返回defaultValue
  * 获取标志位,若flag为true,则有数据
  */
 if( sp.getBoolean("flag",false)==true ){
  getData();
  //模拟点击
  checkBox.performClick();
 }

//设置checkbox的监听事件
 checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
  @Override
  public void onCheckedChanged(CompoundButton compoundButton, boolean isCheck) {

//若选中,则保存数据,否则,清除数据
   if(isCheck){
    saveData();
    Toast.makeText(MainActivity.this,"已保存",Toast.LENGTH_LONG).show();
   }
   else{
    clearData();
   }
  }
 });
}
 /**
 * SharedPreferences为轻量级的存储方式
 * Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问。
 * 在该模式下,写入的内容会覆盖原文件的内容
 * 存储位置:Device File Explorer(idea 或Android studio右下角)
 * data/data/项目的包名/shared_prefs
 */
//清除数据
private void clearData() {
 SharedPreferences sp = getSharedPreferences("items",MODE_PRIVATE);
 SharedPreferences.Editor editor = sp.edit();
 editor.clear();
 editor.commit();
 et1.setText("");
 et2.setText("");
}
/**
 * 获取SharedPreferences数据
 */
private void getData(){
 SharedPreferences sp = getSharedPreferences("items", Context.MODE_PRIVATE);
 String username = sp.getString("username","");
 String password = sp.getString("password","");
 et1.setText(username);

//密文设置
 TransformationMethod method = PasswordTransformationMethod.getInstance();
 et2.setText(password);
 et2.setTransformationMethod(method);

}

/**
 *保存数据
 * android:onClick响应的方法 只能用修饰符public
 */
public void saveData(){

SharedPreferences sharedPreferences = getSharedPreferences("items", Context.MODE_PRIVATE);
 SharedPreferences.Editor editor = sharedPreferences.edit();

String username = et1.getText().toString();
 String password = et2.getText().toString();

if(!username.equals("") && !password.equals("")) {

editor.putString("username", username);
  editor.putString("password", password);
  editor.putBoolean("flag", true); //标志位
  editor.commit();
 }

}
}

测试

Android实现记住账号密码功能

来源:https://blog.csdn.net/m0_46267375/article/details/109059917

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com