Android模仿用户设置密码实例

首先有2个对话框,没有设置过密码,需要设置dialog_set_password.xml,用户设置过密码,不需要设置,直接输入密码dialog_input_password.xml,

设置对话框dialog_set_password.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:orientation="vertical" >
  <TextView
    android:id="@+id/textView1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:textColor="@color/black"
    android:textSize="20sp"
    android:background="#66ff00"
    android:text="设置密码"
    android:padding="10dp"
    />
  <EditText
    android:id="@+id/et_password"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:inputType="textPassword"
    android:hint="请输入密码"
    />
  <EditText
    android:id="@+id/et_password_confirm"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:inputType="textPassword"
    android:hint="请再次输入密码"
    />
  <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    >
    <Button
      android:id="@+id/btn_ok"
      android:layout_width="0dp"
      android:layout_height="wrap_content"
      android:layout_weight="1"
      android:text="确定" />
    <Button
      android:id="@+id/btn_cancle"
      android:layout_width="0dp"
      android:layout_height="wrap_content"
      android:layout_weight="1"
      android:text="取消" />
  </LinearLayout>
</LinearLayout> 

输入对话框dialog_input_password.xml,

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:orientation="vertical" >
  <TextView
    android:id="@+id/textView1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:textColor="@color/black"
    android:textSize="20sp"
    android:background="#66ff00"
    android:text="输入密码"
    android:padding="10dp"
    />
  <EditText
    android:id="@+id/et_password"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:inputType="textPassword"
    android:hint="请输入密码"
    />
  <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    >
    <Button
      android:id="@+id/btn_ok"
      android:layout_width="0dp"
      android:layout_height="wrap_content"
      android:layout_weight="1"
      android:text="确定" />
    <Button
      android:id="@+id/btn_cancle"
      android:layout_width="0dp"
      android:layout_height="wrap_content"
      android:layout_weight="1"
      android:text="取消" />
  </LinearLayout>
</LinearLayout> 

业务逻辑并实现md5加密

package com.ldw.safe.Activity;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import com.ldw.safe.R;
import com.ldw.safe.utils.MD5Utils;
public class HomeActivity extends Activity{
  private GridView gv_home;
  private String[] mItems = new String[] {"手机防盗", "通讯卫士", "软件管理", "进程管理", "流量统计", "手机杀毒", "缓存清理", "高级工具", "设置中心"};
  private int[] mPics = new int[] {R.drawable.safe, R.drawable.callmsgsafe, R.drawable.app,
      R.drawable.taskmanager, R.drawable.netmanager, R.drawable.sysoptimize,
      R.drawable.trojan, R.drawable.atools, R.drawable.settings};
  private SharedPreferences mPref;
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_home);
    mPref = getSharedPreferences("config", MODE_PRIVATE);
    gv_home = (GridView) findViewById(R.id.gv_home);
    gv_home.setAdapter(new HomeAdapter());
    //监听gridview点击事件
    gv_home.setOnItemClickListener(new OnItemClickListener(){
      @Override
      public void onItemClick(AdapterView<?> parent, View view,
          int position, long id) {
        switch(position){
        case 0:
          //手机防盗
          showPasswordDialog();
          break;
        case 8:
          //设置中心
          startActivity(new Intent(HomeActivity.this, SettingActivity.class));
          break;
        default:
          break;
        }
      }
    });
  }
  /*
   * 显示密码的弹窗
   */
  protected void showPasswordDialog(){
    //判断是否设置密码
    String savePassword = mPref.getString("password", null);
    if(!TextUtils.isEmpty(savePassword)){
      //输入密码的弹窗
      showPasswordInputDialog();
    }else{
      //如果没有设置过,弹出密码设置的弹窗
      showPasswordSetDialog();
    }
  }
  /*
   * 输入密码框,设置过密码只需要登陆
   */
  protected void showPasswordInputDialog(){
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    final AlertDialog dialog = builder.create();
    View view = View.inflate(this, R.layout.dialog_input_password, null);
    //dialog.setView(view);//自定义的view设置到dialog
    dialog.setView(view, 0, 0, 0, 0);//设置边距为0,兼容android2.3
    final EditText etPassword = (EditText) view.findViewById(R.id.et_password);
    //获取2个按键
    Button btnOk = (Button)view.findViewById(R.id.btn_ok);
    Button btnCancle = (Button)view.findViewById(R.id.btn_cancle);
    //监听ok按键
    btnOk.setOnClickListener(new OnClickListener(){
      @Override
      public void onClick(View v) {
        String password = etPassword.getText().toString();
        if(!TextUtils.isEmpty(password)){
          String savePassword = mPref.getString("password", null);
          if(MD5Utils.encode(password).equals(savePassword)){
            Toast.makeText(HomeActivity.this, "登陆成功", Toast.LENGTH_SHORT).show();
            //对话框消失
            dialog.dismiss();
            //跳转到手机防盗界面
            startActivity(new Intent(HomeActivity.this, LostAndFind.class));
          }else{
            Toast.makeText(HomeActivity.this, "登陆失败", Toast.LENGTH_SHORT).show();
          }
        }else{
          Toast.makeText(HomeActivity.this, "输入框不能是空的", Toast.LENGTH_SHORT).show();
        }
      }
    });
    //监听取消按键
    btnCancle.setOnClickListener(new OnClickListener(){
      @Override
      public void onClick(View v) {
        dialog.dismiss();
      }
    });
    dialog.show();
  }
  /*
   * 设置密码的弹窗,以前没有设置密码
   */
  protected void showPasswordSetDialog(){
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    final AlertDialog dialog = builder.create();
    View view = View.inflate(this, R.layout.dialog_set_password, null);
    //dialog.setView(view);//自定义的view设置到dialog
    dialog.setView(view, 0, 0, 0, 0);//设置边距为0,兼容android2.3
    final EditText etPassword = (EditText) view.findViewById(R.id.et_password);
    final EditText etPasswordConfirm = (EditText) view.findViewById(R.id.et_password_confirm);
    //获取2个按键
    Button btnOk = (Button)view.findViewById(R.id.btn_ok);
    Button btnCancle = (Button)view.findViewById(R.id.btn_cancle);
    //监听ok按键
    btnOk.setOnClickListener(new OnClickListener(){
      @Override
      public void onClick(View v) {
        String password = etPassword.getText().toString();
        String passwordConfirm = etPasswordConfirm.getText().toString();
        //TextUtils.isEmpty(password)判断password是不是空,可以避免都是空格
        if(!TextUtils.isEmpty(password) && !passwordConfirm.isEmpty()){
          if(password.equals(passwordConfirm)){
            Toast.makeText(HomeActivity.this, "登陆成功", Toast.LENGTH_SHORT).show();
            //保存密码到mPref
            mPref.edit().putString("password", MD5Utils.encode(password)).commit();
            //对话框消失
            dialog.dismiss();
            //跳转到手机防盗界面
            startActivity(new Intent(HomeActivity.this, LostAndFind.class));
          }else{
            Toast.makeText(HomeActivity.this, "两次密码不一致", Toast.LENGTH_SHORT).show();
          }
        }else{
          Toast.makeText(HomeActivity.this, "输入框不能是空的", Toast.LENGTH_SHORT).show();
        }
      }
    });
    //监听取消按键
    btnCancle.setOnClickListener(new OnClickListener(){
      @Override
      public void onClick(View v) {
        dialog.dismiss();
      }
    });
    dialog.show();
  }
  class HomeAdapter extends BaseAdapter{
    @Override
    public int getCount() {
      // TODO Auto-generated method stub
      return mItems.length;
    }
    @Override
    public Object getItem(int position) {
      // TODO Auto-generated method stub
      return mItems[position];
    }
    @Override
    public long getItemId(int position) {
      // TODO Auto-generated method stub
      return position;
    }
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
      View view = View.inflate(HomeActivity.this, R.layout.home_list_item, null);
      ImageView iv_item = (ImageView) view.findViewById(R.id.iv_item);
      TextView tv_item = (TextView) view.findViewById(R.id.tv_item);
      iv_item.setImageResource(mPics[position]);
      tv_item.setText(mItems[position]);
      return view;
    }
  }
} 

以上所述是小编给大家介绍的Android模仿用户设置密码实例,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • Android实现记住用户名和密码功能

    Android 实现记住用户名和密码的功能是通过SharedPreference 存储来实现的.创建一个复选按钮,通过按钮的否选取来进行事件处理.若按钮选中存储账号和密码的信息.若按钮没有选中,则清空账号和密码的信息. 结果演示: 源代码下载地址: https://github.com/GXS1225/Android-----.git 分析 (1)判断是否输入了账号和密码 if(name.trim().equals("")){ Toast.makeText(this, "请您

  • Android实战教程第七篇之如何在内存中存储用户名和密码

    本文实例为大家分享了Android内存中存储用户名和密码的方法,供大家参考,具体内容如下 首先是配置文件: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layo

  • Android手机卫士之设置密码对话框

    本文实现初次设置密码验证过程,首先实现如下效果 布局如下: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="

  • Android模仿用户设置密码实例

    首先有2个对话框,没有设置过密码,需要设置dialog_set_password.xml,用户设置过密码,不需要设置,直接输入密码dialog_input_password.xml, 设置对话框dialog_set_password.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/r

  • Android模仿实现微博详情页滑动固定顶部栏的效果实例

    前言 最近项目中遇到一个需求,类似微博详情页的效果,通过查找相关的资料终于找了对应的解决方案,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 先来看下我们今天要实现的效果: 滑动固定顶部栏效果图 这段时间公司准备重构一个项目,刚好用到这个效果,我就顺带写了篇文章,关于这个效果网上可以找到一些相关资料的,昨晚看了一些,感觉都不是很好,有点模棱两可的样子,也没提到需要注意的一些关键点,这里来做下整理,由于涉及到公司的代码,这里我就写个简单的Demo来讲解. 简单Demo 传统套路:

  • Android模仿美团顶部的滑动菜单实例代码

    前言 本文主要给大家介绍了关于Android模仿美团顶部滑动菜单的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 先来看下效果图: 实现方法 这是通过 ViewPager 和 GridView 相结合做出来的效果,每一个 ViewPager 页面都是一个 GridView,底部的每个滑动指示圆点都是从布局文件中 inflate 出来的 首先需要一个代表每个活动主题的 JavaBean /** * Created by CZY on 2017/6/23. */ publ

  • java编程基础之模仿用户登录代码分享

    上一篇文章我们了解了Java背包问题求解实例代码,接下来我们看看Java中模仿用户登录的相关代码,下面是具体内容. 基于用户从控制台输入模拟的简陋用户登录验证Demo原理: 利用 Scanner 类中 nextLine() 提取用户从控制台输入的字符串信息 利用 String 类的 equals 方法进行用户输入验证 import java.util.Scanner; public class Login { public static void main(String[] args) { //

  • Android的搜索框架实例详解

    基础知识 Android的搜索框架将代您管理的搜索对话框,您不需要自己去开发一个搜索框,不需要担心要把搜索框放什么位置,也不需要担心搜索框影响您当前的界面.所有的这些工作都由SearchManager类来为您处理(以下简称"搜索管理器"),它管理的Android搜索对话框的整个生命周期,并执行您的应用程序将发送的搜索请求,返回相应的搜索关键字. 当用户执行一个搜索,搜索管理器将使用一个专门的Intent把搜索查询的关键字传给您在配置文件中配置的处理搜索结果的Activity.从本质上讲

  • PHP采用curl模仿用户登陆新浪微博发微博的方法

    本文实例讲述了PHP采用curl模仿用户登陆新浪微博发微博的方法.分享给大家供大家参考.具体实现方法如下: 现在用php做模仿用户登录我们都会使用到PHP curl函数了,因为只有它才可以实现像用户一样的去访问别人网站了,下面就给大家介绍一下curl登陆新浪微博发微博应用例子. 前天接到一个需求需要模拟登陆微博然后进行发微博,以前干过很多的模拟登录阿里妈妈,微信,还有些其他的内部系统,至今没有出现不能登录的,哈哈,所以也就没有当一回事情,可是当分析新浪的登陆过程的时候才感觉到压力 遇到sha1(

  • Android 对话框 Dialog使用实例讲解

    对话框 Dialog 什么是对话框 对话框是在当前的页面之上弹出的小窗口, 用于显示一些重要的提示信息, 提示用户的输入,确认信息,或显示某种状态.如 : 显示进度条对话框, 退出提示. 对话框的特点: 1, 当前界面弹出的小窗口. 2, 用户要与它进行交互, 可以接收用户输入的信息, 也可以反馈信息给用户. 常用对话框: 1, 普通对话框 AlertDialog 2, 进度条对话框 ProgressDialog 3, 日期对话框 DatePickerDialog 4, 时间对话框 TimePi

  • Java中的instanceof关键字在Android中的用法实例详解

    在下面介绍Android中如何使用instanceof关键字开发更方便时,先来温习一下java中instanceof的概念. instanceof大部分的概念是这样定义的:instanceof是Java的一个二元操作符,和==,>,<是同一类东西.由于它是由字母组成的,所以也是Java的保留关键字.它的作用是测试它左边的对象是否是它右边的类的实例,返回boolean类型的数据.举个栗子: String s = "I AM an Object!"; boolean isObj

  • Android 登录处理简单实例(源码下载)

    Android 登录处理简单实例 今天整理一下之前在项目中写的关于某些界面需要登录判断处理.这里整理了一个简易的 Demo 模拟一下 登录情况 和 未登录情况 下的界面跳转处理, 效果如图: 以上分别模拟了,未登录和已登录 情况下的 界面跳转和当前界面事件处理.接下来我们来看一下实现方式. 先从核心代码开始看: public class GoLoginUtil { public static final String CLASSNAME = "className"; public st

  • Android 获取系统语言的实例(兼容7.0)

    前言 获取系统当前语言是一个比较常用的功能,在 Android 7.0 系统上旧函数获取到的当前系统语言并不正确,或者说从 Android 7.0 起,Android 系统语言的规则变了. 下面是未适配 Android 7.0 的代码: //获取 Locale 的方式有二 //方式一 Locale locale = getResources().getConfiguration().locale; //方式二 Locale locale = Locale.getDefault(); //获取当前

随机推荐