qq简单登陆界面 的学习
本功能主要实现了 qq号以及密码的保存,使用了sharedpreferences来实现,主要用到了一些sharedpreferences 的一些写入及读取,以及MD5简单的加密算法
接下来上代码
1 登陆代码
package com.djf.qqlogin; import android.app.Activity; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.os.Bundle; import android.text.TextUtils; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.CheckBox; import android.widget.EditText; import android.widget.Toast; public class MainActivity extends Activity { private EditText et_number; private EditText et_password; private Button okButton; private Button cancelbutton; private CheckBox mycBox; private SharedPreferences sp; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); et_number = (EditText) findViewById(R.id.et_number); et_password = (EditText) findViewById(R.id.et_password); okButton = (Button) findViewById(R.id.ok); cancelbutton = (Button) findViewById(R.id.cancel); mycBox = (CheckBox) findViewById(R.id.cb); //完成sp的初始化 sp = getSharedPreferences("config", MODE_PRIVATE); String qqString1 = sp.getString("qq", ""); String password1 = sp.getString("password", ""); et_number.setText(qqString1); et_password.setText(password1); } public void ok(View view) { String qqString = et_number.getText().toString().trim(); String password = et_password.getText().toString().trim(); if (TextUtils.isEmpty(qqString)||TextUtils.isEmpty(password)) { Toast.makeText(this, "qq号或者密码不能为空", 0).show(); } else { if (mycBox.isChecked()) //把用户名和密码记下来 { Editor editor = sp.edit(); editor.putString("qq", qqString); editor.putString("password", MD5utils.encode(password)); editor.commit(); Toast.makeText(this, "保存成功", 0).show(); } } } }
2加密代码
package com.djf.qqlogin; import java.security.MessageDigest; public class MD5utils { public static String encode(String password) { try { MessageDigest digest = MessageDigest.getInstance("md5"); byte[] results = digest.digest(password.getBytes()); StringBuilder sb = new StringBuilder(); for(byte b : results){ int number = b&0xff; String hex = Integer.toHexString(number); if(hex.length()==1){ sb.append("0"); } sb.append(hex); } return sb.toString(); } catch (Exception e) { e.printStackTrace(); return ""; } } }