安卓用SharedPreference实现记住用户名和密码

1.试验所需要的结果图:

2.实验概要

     实验目的

         1) 掌握SharedPreference 的使用

        

              SharedPreferences数据的四种操作模式
                            Context.MODE_PRIVATE
                            Context.MODE_APPEND
                            Context.MODE_WORLD_READABLE
                            Context.MODE_WORLD_WRITEABLE
                (本项目中利用的是Context.MODE_READABLE模式)
          2) 理解SharedPreference 背后的原理

 

     实验步骤

         1:加入复选框组件
         2:登录按钮事件处理
         3: 在onCreate 方法中加入是否记住密码的逻辑判断

 

3.   开发步骤及关键代码:

(1).LoginActivit

public class LoginActivity extends Activity {

      Private Button btnLogin,tvRegister;

      private EditText tvName,tvPassword;

      private CheckBox rePassword;

      private String tvNamevalue,tvPasswordvalue;

      private SharedPreferences sp;

    @Override

    public void onCreate(BundlesavedInstanceState) {

       super.onCreate(savedInstanceState);

       setContentView(R.layout.hello_activity);

              //去除标题

            this.requestWindowFeature(Window.FEATURE_NO_TITLE);

            setContentView(R.layout.login_bottom); 

           

           

            //获取实例对象

            sp=this.getSharedPreferences("userInfo",Context.MODE_WORLD_READABLE);

            tvName=(EditText)findViewById(R.id.tvUsername);

            tvPassword=(EditText)findViewById(R.id.tvPassword);

            rePassword=(CheckBox)findViewById(R.id.rePassword);

            btnLogin = (Button)findViewById(R.id.btnLogin);

            tvRegister=(Button)findViewById(R.id.tvRegist);

            requestWindowFeature(Window.FEATURE_NO_TITLE);

            setContentView(R.layout.activity_main);

                        

         

        SharedPreferences settings =getSharedPreferences("SETTING_Infos", 0);

        String strJudge =settings.getString("judgeText", "no");// 选中状态

            String tvNameValue = settings.getString("tvNameValue","");// 用户名

            String tvPasswordValue = settings.getString("tvPasswordValue","");// 密码

           

            if(strJudge.equals("yes")){

                  rePassword.setChecked(true);

                  tvName.setText(tvName);

                  tvPassword.setText(tvPassword);

            }else{

                  rePassword.setChecked(false);

                  tvName.setText("");

                  tvPasssword.setText("");

            }

            //监听器

            cb1.setOnCheckedChangeListener(newOnCheckedChangeListener() {                        

                  @Override

                  public voidonCheckedChanged(CompoundButton arg0, boolean arg1) {

                        // TODOAuto-generated method stub

                        SharedPreferencessettings = getSharedPreferences("SETTING_Infos", 0);

                        if(arg1 ==true){

                               //勾选时,存入EditText中的用户名密码              

                               settings.edit().putString("judgeText","yes")

                               .putString("tvName",tvName.getText().toString())

                               .putString("tvPassword",tvPassword.getText().toString())

                               .commit();

                               Toast.makeText(LoginActivity.this,"记住用户名和密码", Toast.LENGTH_SHORT)

                               .show();

                        }else{

                               //不勾选,存入空String对象

                               settings.edit().putString("judgeText","no")

                               .putString("tvName","")

                               .putString("tvPassword","")

                               .commit();

                               Toast.makeText(LoginActivity.this,"不记住用户名和密码", Toast.LENGTH_SHORT)

                              .show();

                        }

                  }

            });

    }

}

(2).XML代码

activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="
http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="@drawable/loginbg"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".LoginActivity" >

  <include layout="@layout/login_top"/>
  <include layout="@layout/login_bottom"/>"

</LinearLayout>

Login_botom.xml


    <TextView
        android:id="@+id/tvRegist"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="21dp"
        android:layout_marginTop="18dp"
        android:text="@string/tvRegister"
        android:autoLink="all"
        android:textColorLink="#FF0066CC" />

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:layout_marginBottom="24dp"
        android:src="@drawable/panda" />

    <ImageView
        android:id="@+id/imageView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="28dp"
        android:src="@drawable/icon" />

 

Login_top.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/btnbg_roundcorner"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin" >

    <TextView
        android:id="@+id/tvUsername"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:text="@string/tvName"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <EditText
        android:id="@+id/etUsername"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/tvUsername"
        android:layout_below="@+id/tvUsername"
        android:background="@android:drawable/edit_text"
        android:ems="10" >

        <requestFocus />
    </EditText>

    <TextView
        android:id="@+id/tvPassword"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/etUsername"
        android:layout_below="@+id/etUsername"
        android:text="@string/tvPassword"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <EditText
        android:id="@+id/etPassword"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/tvPassword"
        android:layout_below="@+id/tvPassword"
        android:layout_marginTop="16dp"
        android:background="@android:drawable/edit_text"
        android:ems="10"
        android:inputType="textPassword" />

    <Button
        android:id="@+id/btnLogin"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignRight="@+id/etPassword"
        android:layout_below="@+id/etPassword"
        android:layout_marginTop="20dp"
        android:background="#FF72CAE1"
        
        android:text="@string/btnLogin" />

    <CheckBox
        android:id="@+id/rePassword"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/btnLogin"
        android:layout_toRightOf="@+id/tvPassword"
        android:text="@string/rePassword" />

strings.xml 

(设置strings.xml避免硬编码)

<resources>

    <string name="app_name">MiniTwitterSimulate</string>
    <string name="action_settings">Settings</string>
    <string name="hello_world">Hello world!</string>
    <string name="tvName">用户名</string>
    <string name="tvPassword">密码</string>
    <string name="rePassword">记住密码</string>
    <string name="btnLogin">登录</string>
    <string name="tvRegister">没有帐号? <a href="#" mce_href="#">注册</a></string> 
< /resources>

 

这是课堂学习的总结还不完善我会尽量改正!

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值