当前位置 : 主页 > 编程语言 > java >

实现自动登录和记住密码功能

来源:互联网 收集:自由互联 发布时间:2021-06-28
gistfile1.txt if(sp.getBoolean("ISCHECK", false)) { //设置默认是记录密码状态 remember.setChecked(true); user_name.setText(sp.getString("USER_NAME", "")); user_pwd.setText(sp.getString("PASSWORD", "")); //判断自动登陆多选框
gistfile1.txt
if(sp.getBoolean("ISCHECK", false))
    {
        //设置默认是记录密码状态
        remember.setChecked(true);
        user_name.setText(sp.getString("USER_NAME", ""));
        user_pwd.setText(sp.getString("PASSWORD", ""));
        //判断自动登陆多选框状态
        if(sp.getBoolean("AUTO_ISCHECK", false))
        {
            //设置默认是自动登录状态
            auto.setChecked(true);
            //跳转界面
            Intent intent = new Intent(LoginActivity.this,MainActivity.class);
            LoginActivity.this.startActivity(intent);

        }
    }
LoginActivity.java
package mad.com.its02;

import android.app.Activity;
import android.app.Dialog;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.Toast;

import mad.com.its02.util.Util;

public class LoginActivity extends Activity implements OnClickListener {

    private String URL_POST;
    private String urlHttp;
    private String urlPort = "80";

    private EditText    user_name;
    private EditText    user_pwd;
    private ImageButton btn_login;
    private ImageButton btn_setting;
    private CheckBox remember;
    private CheckBox auto;
    private SharedPreferences sp;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.activity_login);
        sp = getSharedPreferences("save", MODE_PRIVATE);
        initView();
        initData();

      if(sp.getBoolean("ISCHECK", false))
    {
        //设置默认是记录密码状态
        remember.setChecked(true);
        user_name.setText(sp.getString("USER_NAME", ""));
        user_pwd.setText(sp.getString("PASSWORD", ""));
        //判断自动登陆多选框状态
        if(sp.getBoolean("AUTO_ISCHECK", false))
        {
            //设置默认是自动登录状态
            auto.setChecked(true);
            //跳转界面
            Intent intent = new Intent(LoginActivity.this,MainActivity.class);
            LoginActivity.this.startActivity(intent);

        }
    }
    }
    /**
     *
     */
    public void initView() {
        user_name = (EditText) findViewById(R.id.user_name);
        user_pwd = (EditText) findViewById(R.id.user_pwd);
        remember= (CheckBox) findViewById(R.id.remember);
        auto= (CheckBox) findViewById(R.id.auto);
        btn_login = (ImageButton) findViewById(R.id.btn_login);
        btn_setting = (ImageButton) findViewById(R.id.btn_setting);
    }

    /**
     *
     */
    public void initData() {
        btn_login.setOnClickListener(this);
        btn_setting.setOnClickListener(this);
        remember.setOnClickListener(this);
        auto.setOnClickListener(this);
        URL_POST = Util.loadSetting(LoginActivity.this);
        //		URL_POST =loadSetting();


    }

    /**
     * 描述:保存数据到SharedPreferences对象中
     *
     * @param ipUrl
     * @param ipPort
     */

    public void saveSetting(String ipUrl, String ipPort) {
        SharedPreferences spSettingSave = getSharedPreferences("setting", MODE_PRIVATE);// 将需要记录的数据保存在setting.xml文件中
        SharedPreferences.Editor editor = spSettingSave.edit();
        editor.putString("ipUrl", ipUrl);
        editor.putString("ipPort", ipPort);
        editor.commit();
    }

    /**
     * 描述:获取数据到SharedPreferences对象中
     *
     * @return
     */
    public String loadSetting() {
        SharedPreferences loadSettingLoad = getSharedPreferences("setting", MODE_PRIVATE);
        //这里是将setting.xml 中的数据读出来
        urlHttp = loadSettingLoad.getString("ipUrl", "");
        urlPort = loadSettingLoad.getString("ipPort", "");
        String urlSetting = "http://" + urlHttp + ":" + urlPort + "/";
        return urlSetting;
    }

    /**
     * 描述:点击事件监听
     *
     * @param v
     */
    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.remember:

                if (remember.isChecked()) {
                    sp.edit().putBoolean("ISCHECK", true).commit();

                }else {
                    sp.edit().putBoolean("ISCHECK", false).commit();

                }
            break;
            case R.id.auto:
                if (auto.isChecked()) {

                    sp.edit().putBoolean("AUTO_ISCHECK", true).commit();

                } else {
                    sp.edit().putBoolean("AUTO_ISCHECK", false).commit();
                }
                break;
            case R.id.btn_login:
                String userName = user_name.getText().toString().trim();
                String userPwd = user_pwd.getText().toString().trim();
                if(userName.equals("liu")&&userPwd.equals("123"))
                {
                    Toast.makeText(LoginActivity.this,"登录成功", Toast.LENGTH_SHORT).show();
                    //登录成功和记住密码框为选中状态才保存用户信息
                    if(remember.isChecked())
                    {
                        //记住用户名、密码
                        SharedPreferences.Editor editor = sp.edit();
                        editor.putString("USER_NAME", userName);
                        editor.putString("PASSWORD",userPwd);
                        editor.commit();
                    }
                    //跳转界面
                    Intent intent = new Intent(LoginActivity.this,MainActivity.class);
                    LoginActivity.this.startActivity(intent);
                    //finish();

                }else{
                    Toast.makeText(LoginActivity.this,"用户名或密码错误,请重新登录", Toast.LENGTH_LONG).show();
                    return;
                }


                if (userName == null || userName.equals("")) {
                    Toast.makeText(this, "请输入用户名!", Toast.LENGTH_LONG).show();
                } else if (userPwd == null || userPwd.equals("")) {
                    Toast.makeText(this, "请输入密码!", Toast.LENGTH_LONG).show();
                } else if (URL_POST == null || URL_POST.equals("")) {
                    Toast.makeText(this, "请设置服务器地址和端口!", Toast.LENGTH_LONG).show();
                } else {

                    Intent intent = new Intent();
                    intent.setClass(LoginActivity.this, MainActivity.class);
                    startActivity(intent);
                    this.finish();

                    //					 Map
 
   paramValues = new HashMap
  
   (); // paramValues.put("user_name", userName); // paramValues.put("user_pwd",userPwd); // // HttpUtils.doPost(getApplicationContext(), URL_POST, "post", paramValues, // new VolleyInterface(getApplicationContext(), VolleyInterface.mListener, VolleyInterface.mErrorListtener) { // // @Override // public void onSuccess(String result) { // Intent intent = new Intent(); // intent.setClass(LoginActivity.this, MainActivity.class); // startActivity(intent); // } // // @Override // public void onError(VolleyError error) { // Toast.makeText(LoginActivity.this, "错误:"+error.toString(), Toast.LENGTH_LONG).show(); // // } // }); } break; case R.id.btn_setting: System.out.println("URL_POST:" + URL_POST); final Dialog urlSettingDialog = new Dialog(LoginActivity.this); urlSettingDialog.show(); urlSettingDialog.setTitle("网络设置"); urlSettingDialog.getWindow().setContentView(R.layout.login_setting); final EditText edit_urlHttp = (EditText) urlSettingDialog.getWindow().findViewById(R.id.edit_setting_url); final EditText edit_urlPort = (EditText) urlSettingDialog.getWindow().findViewById(R.id.edit_setting_port); edit_urlHttp.setText(Util.urlHttp); edit_urlPort.setText(Util.urlPort); Button save = (Button) urlSettingDialog.getWindow().findViewById(R.id.save); Button cancel = (Button) urlSettingDialog.getWindow().findViewById(R.id.cancel); save.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub urlHttp = edit_urlHttp.getText().toString(); urlPort = edit_urlPort.getText().toString(); if (urlHttp == null || urlHttp.equals("")) { Toast.makeText(LoginActivity.this, "地址格式不正确!", Toast.LENGTH_LONG).show(); } else { Util.saveSetting(urlHttp, urlPort, LoginActivity.this); // saveSetting(urlHttp,urlPort); // URL_POST = loadSetting(); URL_POST = Util.loadSetting(LoginActivity.this); urlSettingDialog.dismiss(); } } }); cancel.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub urlSettingDialog.dismiss(); } }); urlSettingDialog.show(); break; case R.id.btn_reg: final Dialog dialog = new Dialog(LoginActivity.this); dialog.show(); } } }
  
 
上一篇:判断IP地址是否正确
下一篇:各种算法
网友评论