Android studio之实现记住密码(SharePreference)

    1.首先,我们都希望我们的信息可以得到储存,而不希望我们下一次上线我们原来的信息就没了,我们就要选择一种方法储存我们的信息,而AS里面也有很多的方法让我们储存我们的信息,如信息流之类的,但AS提供了一个可以令我们更加便捷存储我们信息的工具,就是SharePreference存储,他的使用十分方便,也很容易理解,有点类似于C++的STL里面的mulstiset.

   2.如果我们要学习一个器件,那么他有什么重要的方法就尤为重要了.

    a.首先它的添加方式只有MODE_PRIVATE,即是它只能在原文件末尾追加,而不能覆盖原文件

    b.SharePreference.editor editor=getSharedPreferences("文件名",模式).editor这样我们就创建好了一个SharePrefence编辑器了,需要注意的是我们所有的这种类型的文件都是储存在一个默认的路径的,所以我们不需要增加文件路径,如果需要查看,我们只需要打开Tool里面的Device Monitor里面的某一项文件就行,至于具体到那个我就不说明了,如何往里面增加内容呢,也很简单,只需要调用.put类型("键值","内容"),编辑完后,再调用.apply()就设置完成了.

    c.而如何在里面拿值了,其实模式基本一样,SharePreference editor=getSharedPreferences("文件名",模式),然后知道键值和类型就可以通过.get类型("键值","如果不存在此键值用这个字符串的内容代替");

3.我们知道这些之后那么就很好实现了

package activitytest.example.com.file;

import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.preference.Preference;
import android.preference.PreferenceManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Toast;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class MainActivity extends AppCompatActivity {

    private Button button;
    private EditText Name;
    private EditText Passage;
    private CheckBox checkBox;
    private SharedPreferences sharedPreferences;
    private SharedPreferences.Editor editor;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        button=(Button)findViewById(R.id.button);
        Name=(EditText)findViewById(R.id.nameedit);
        Passage=(EditText)findViewById(R.id.password);
        checkBox=(CheckBox)findViewById(R.id.pass);
        sharedPreferences= PreferenceManager.getDefaultSharedPreferences(this);
        boolean pang=sharedPreferences.getBoolean("remember_password",false);
        if(pang)
        {
            Name.setText(sharedPreferences.getString("Name",""));
            Passage.setText(sharedPreferences.getString("Password",""));
            checkBox.setChecked(true);
        }
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                editor=sharedPreferences.edit();
                String tempname=Name.getText().toString();
                String temppass=Passage.getText().toString();
                if(tempname.equals("GDZC")&&temppass.equals("123456"))
                {
                    if(checkBox.isChecked())
                    {
                        editor.putString("Name",tempname);
                        editor.putString("Password",temppass);
                        editor.putBoolean("remember_password",true);
                        Toast.makeText(MainActivity.this,"success",Toast.LENGTH_SHORT).show();
                    }
                    else {
                        editor.clear();
                        Toast.makeText(MainActivity.this,"No",Toast.LENGTH_SHORT).show();
                    }
                    editor.apply();
                }
            }
        });
    }
布局我就不列出来了

你可能感兴趣的:(Android studio之实现记住密码(SharePreference))