• Android四大组件之SharedPreferences的使用


    用一个小例子来使用SharedPreferences

    看下运行结果

    输入账号与密码

    当我返回重新打开时,用户名会自动填写~这是因为我点击了CheckBox

    下面看下实现方法

    第一步:对布局进行编辑

      <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/et1"
            android:layout_toEndOf="@+id/tv1" />
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="用户名:"
            android:id="@+id/tv1"
            android:layout_alignBaseline="@+id/et1"
            android:layout_alignBottom="@+id/et1"
            android:layout_alignParentStart="true" />
    
        <EditText
            android:id="@+id/et2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/et1"
            android:layout_toEndOf="@+id/tv2" />
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="密   码:"
            android:id="@+id/tv2"
            android:layout_alignBaseline="@+id/et2"
            android:layout_alignBottom="@+id/et2"
            android:layout_alignParentStart="true" />
    
        <CheckBox
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/cb"
            android:checked="false"
            android:text="保存用户名"
            android:layout_below="@+id/et2"
            android:layout_alignParentStart="true"
            android:layout_marginTop="34dp" />
    
        <Button
            android:onClick="doClick"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="登陆"
            android:layout_alignBaseline="@+id/button"
            android:layout_alignBottom="@+id/button"
            android:layout_toStartOf="@+id/button"
            android:id="@+id/button2" />
    
        <Button
            android:onClick="doClick"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="取消"
            android:layout_marginTop="29dp"
            android:layout_marginStart="13dp"
            android:id="@+id/button"
            android:layout_below="@+id/cb"
            android:layout_toEndOf="@+id/cb" />
    

    第二步:来到Mactivity.java进行编写

    public class MainActivity extends AppCompatActivity {
    
        private EditText et1,et2;
        private CheckBox cb;
        private SharedPreferences Preferences;
        private SharedPreferences.Editor editor;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            et1= (EditText) findViewById(R.id.et1);
            et2= (EditText) findViewById(R.id.et2);
            cb= (CheckBox) findViewById(R.id.cb);
            //获取SharedPreferences对象
            Preferences=getSharedPreferences("UserIfo",MODE_PRIVATE);
            //启动编辑
            editor=Preferences.edit();
            //第二次登陆时直接从Preferences中赋值给name
            String name=Preferences.getString("userName","");
            if (name==null){
                //若是第一次登陆则name为空,此时cb不为勾选状态
                cb.setChecked(false);
            }else {
                //若是不是第一次登陆则name不为空,此时设置cb为勾选状态
                cb.setChecked(true);
                //将name从Preferences获取出来赋值给et1
                et1.setText(name);
            }
        }
        public void doClick(View view){
            switch (view.getId()){
                case R.id.button2:
                    //获取EditText控件上所输入的值
                    String user=et1.getText().toString().trim();
                    String press=et2.getText().toString().trim();
                    //判断下EditText输入的账号与密码是否一致
                    if ("admin".equals(user)&&"123456".equals(press)){
                        //判定Checked是否勾选了
                        if (cb.isChecked()){
                            //勾选了就把用户名存到editor中去
                            editor.putString("userName",user);
                            //提交下
                            editor.commit();
                        }else {
                            //若没有勾选,则把用户名给移除
                            editor.remove("userName");
                            //然后再提交下
                            editor.commit();
                        }
                        Toast.makeText(MainActivity.this, "登陆成功!", Toast.LENGTH_SHORT).show();
    
                    }else {
                        Toast.makeText(this, "禁止登陆", Toast.LENGTH_SHORT).show();
                    }
                    break;
            }
        }
    }
    
  • 相关阅读:
    323. Number of Connected Components in an Undirected Graph
    418. Sentence Screen Fitting
    417. Pacific Atlantic Water Flow
    416. Partition Equal Subset Sum
    415. Add Strings
    245. Shortest Word Distance III
    [AHOI2009]维护序列
    [洛谷P1439]排列LCS问题
    [Vijos P1369]难解的问题
    [codevs3657]括号序列
  • 原文地址:https://www.cnblogs.com/zyl222/p/7599956.html
Copyright © 2020-2023  润新知