zoukankan      html  css  js  c++  java
  • 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;
            }
        }
    }
    
  • 相关阅读:
    linux sysfs (2)
    微软——助您启动云的力量网络虚拟盛会
    Windows Azure入门教学系列 全面更新啦!
    与Advanced Telemetry创始人兼 CTO, Tom Naylor的访谈
    Windows Azure AppFabric概述
    Windows Azure Extra Small Instances Public Beta版本发布
    DataMarket 一月内容更新
    和Steve, Wade 一起学习如何使用Windows Azure Startup Tasks
    现实世界的Windows Azure:与eCraft的 Nicklas Andersson(CTO),Peter Löfgren(项目经理)以及Jörgen Westerling(CCO)的访谈
    正确使用Windows Azure 中的VM Role
  • 原文地址:https://www.cnblogs.com/zyl222/p/7599956.html
Copyright © 2011-2022 走看看