【小功能1】android登录时记住和显示密码功能
2012-11-28 21:05
495 查看
好久没写博客了,自从进入新公司以来学到了很多知识,博客是把自己学过的知识存储并方便以后查看的好工具,最近一直在研究4.0源码,以后更多的是深入研究源码,对于应用可能写的会很少,但是无论如何每天积累点,每天都学点,刚进公司老大让写一个记事本程序,要求能够登录,我在写的时候加入了记住密码和显示密码的功能,原本想加自动登录功能,但是还是两个选项比较合适,多了不多,直接上代码。(今天时间较紧,写的很仓促)
布局文件内容
运行效果图(没图说个JB)
package com.gionee.android.notepad.noteactivity; import com.gionee.android.notepad.service.FileService; import android.app.Activity; import android.app.AlertDialog; import android.app.AlertDialog.Builder; import android.content.DialogInterface; import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; import android.text.Editable; import android.text.InputType; import android.text.TextWatcher; import android.text.method.HideReturnsTransformationMethod; import android.text.method.PasswordTransformationMethod; import android.view.KeyEvent; import android.view.View; import android.view.View.OnClickListener; import android.widget.ArrayAdapter; import android.widget.AutoCompleteTextView; import android.widget.Button; import android.widget.CheckBox; import android.widget.EditText; import android.widget.Toast; /** * @author Ma Guohui * @FileDescription:登陆Activity * @version 2012-10-26 下午2:55:03 * @ChangeList: */ public class Gn_LoginActivity extends Activity { private AutoCompleteTextView mUserNameAuto; private EditText mPasswordEt; private Button mLoginBt; private Button mCancelBt; private String mUserStr; private String mPwdStr; private CheckBox mRemPwdCb; private CheckBox mShowpwdCb; private SharedPreferences mPasswordSp; private FileService fileService; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mUserNameAuto = (AutoCompleteTextView) findViewById(R.id.cardNumAuto); mPasswordEt = (EditText) findViewById(R.id.editPwd); mLoginBt = (Button) findViewById(R.id.button1); mCancelBt = (Button) findViewById(R.id.button2); mRemPwdCb = (CheckBox) findViewById(R.id.checkBox1); mShowpwdCb = (CheckBox) findViewById(R.id.checkBox2); fileService = new FileService(this); savePassword(); mLoginBt.setOnClickListener(new OnClickListener() {//登陆按钮设置监听事件 public void onClick(View v) { // FileService fileService = new FileService(this); // TODO Auto-generated method stub // user = username.getText().toString(); mUserStr = mUserNameAuto.getText().toString().trim(); mPwdStr = mPasswordEt.getText().toString().trim(); if (fileService.login(mUserStr, mPwdStr)) {//执行登录验证操作(fieService是另一个类的实例哦) if (mRemPwdCb.isChecked()) { //选择记住密码功能 mPasswordSp.edit().putString(mUserStr, mPwdStr).commit();//记住密码,把密码信息放入SharedPreferences文件中 } Intent intent = new Intent(Gn_LoginActivity.this, MainActivity.class); startActivity(intent); //跳转到其他显示界面 Gn_LoginActivity.this.finish(); } else { //提示密码错误 Toast.makeText(Gn_LoginActivity.this, getResources().getString(R.string.password_error), Toast.LENGTH_SHORT).show(); } } }); mCancelBt.setOnClickListener(new OnClickListener() {//取消事件监听 @Override public void onClick(View v) { // TODO Auto-generated method stub dialog();//显示对话框 } }); mShowpwdCb.setOnClickListener(new OnClickListener() {//显示密码事件操作 /* * 明文显示密码 : * 明文显示:android.text.method.HideReturnsTransformationMethod ; * 密文显示:android.text.method.PasswordTransformationMethod ; */ @Override public void onClick(View v) { // TODO Auto-generated method stub if (mShowpwdCb.isChecked()) {// 被选中,则显示明文 // 将文本框的内容设置成明文显示 mPasswordEt.setTransformationMethod(HideReturnsTransformationMethod .getInstance()); } else { // 将文本框内容设置成密文的方式显示 mPasswordEt.setTransformationMethod(PasswordTransformationMethod .getInstance()); } } }); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) {//监听返回键事件 // TODO Auto-generated method stub if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { dialog(); } return false; } private void dialog() {//显示对话框方法 (退出时哦) AlertDialog.Builder builder = new Builder(Gn_LoginActivity.this); builder.setMessage(this.getResources().getString(R.string.isLogout)); builder.setTitle(this.getResources().getString(R.string.logoutPrompt)); builder.setPositiveButton(this.getResources().getString(R.string.logout_yes), new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub dialog.dismiss(); Gn_LoginActivity.this.finish(); } }); builder.setNegativeButton(this.getResources().getString(R.string.logout_no), new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }); builder.create().show(); } private void savePassword() {//保存密码方法,数据放入SharedPreferences文件 /* * 参数简述: * Name—获得SharedPreferences之后,将会在应用程序的私有文件夹中保存着一个XML文件,第一个参数name就是这个文件名字 * 。 Mode—XML文件的保存模式,默认为0,也就是MODE_PRIVATE */ mPasswordSp = this.getSharedPreferences("passwordFile", MODE_PRIVATE); mRemPwdCb.setChecked(true);// 默认为记住密码 mUserNameAuto.setThreshold(1);// 输入1个字母就开始自动提示 // 隐藏密码为InputType.TYPE_TEXT_VARIATION_PASSWORD,也就是0x81 // 显示密码为InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD,也就是0x91 mPasswordEt.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD); mUserNameAuto.addTextChangedListener(new TextWatcher() { @Override public void onTextChanged(CharSequence s, int start, int before, int count) { // TODO Auto-generated method stub String[] allUserName = new String[mPasswordSp.getAll().size()];// sp.getAll().size()返回的是有多少个键值对 allUserName = mPasswordSp.getAll().keySet().toArray(new String[0]); ArrayAdapter<String> adapter = new ArrayAdapter<String>( Gn_LoginActivity.this, android.R.layout.simple_dropdown_item_1line, allUserName); mUserNameAuto.setAdapter(adapter);// 设置数据适配器 } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { // TODO Auto-generated method stub } @Override public void afterTextChanged(Editable s) { // TODO Auto-generated method stub // 自动输入密码 mPasswordEt.setText(mPasswordSp.getString(mUserNameAuto.getText().toString(), "")); } }); } }
布局文件内容
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/username" /> <AutoCompleteTextView android:id="@+id/cardNumAuto" android:layout_width="fill_parent" android:layout_height="wrap_content" > </AutoCompleteTextView> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/password" /> <EditText android:id="@+id/editPwd" android:layout_width="match_parent" android:layout_height="wrap_content" android:ems="10" android:inputType="textPassword" > <requestFocus /> </EditText> <LinearLayout android:id="@+id/LinearLayout01" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center"> <CheckBox android:id="@+id/checkBox1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/rempwd" /> <CheckBox android:id="@+id/checkBox2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/showpwd" /> </LinearLayout> <LinearLayout android:id="@+id/LinearLayout01" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center"> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="登陆" /> <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="取消" /> </LinearLayout> </LinearLayout>
运行效果图(没图说个JB)
相关文章推荐
- Android——SharedPreferences实现登录界面的记住密码和自动登录功能
- Android探索之路:实现登录界面的记住密码功能
- Android实现用户登录记住密码功能
- Android用SharedPreferences保存数据实现注册和登录功能(首次安装默认打开注册,记住密码)
- Android:登录实现记住密码功能
- Android通过SharedPreferences实现自动登录记住用户名和密码功能
- Android数据存储和访问-登录记住密码功能
- android用SharedPreferences实现登录时记住密码功能
- Android中的记住密码功能与多应用的单点登录
- Android 使用SharedPreferrences储存密码登录界面记住密码功能
- Android数据存储和访问-登录记住密码功能
- Android登录界面用SharedPreferences实现记住密码功能
- Android登录界面用SharedPreferences实现记住密码功能
- Android——SharedPreferences实现登录界面的记住密码和自动登录功能
- 实验3:android数据储存和访问----登录记住密码功能
- 实验3 Android数据存储和访问-登录记住密码功能
- Android开发——登录记住密码功能
- Android登录界面用SharedPreferences实现记住密码功能
- C#序列化实现用户登录记住账号密码功能
- Android 实现记住用户名和密码的功能