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:为默认操作模式,代表该文件是私有数据,只能被应用本身访问。
     * 在该模式下,写入的内容会覆盖原文件的内容
     */
    //清除数据
    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();
        }

    }
}

测试

在这里插入图片描述

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_46267375/article/details/109059917
今日推荐