最近项目开发中做到注册登录时,产品要求登录历史列表类似于QQ登录,经过一番的思考着手开始撸代码,下面是两张效果图。下载完整demo地址:https://download.csdn.net/download/lou_liang/10418605

demo中包含了Sqlite数据库增删改查,对存储的账号进行按照最新的时间排序,最多存储5条数据。

首先创建MyHelper建表:

public class MyHelper extends SQLiteOpenHelper {public MyHelper(Context context) {super(context,"hayden.db",null,3);
    }@Override
    public void onCreate(SQLiteDatabase db) {db.execSQL("CREATE TABLE account(_id INTEGER PRIMARY KEY AUTOINCREMENT,phone VARCHAR(20),name VARCHAR(20),time INTEGER(100),fullName VARCHAR(20))");
    }@Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {}

接着创建存储历史的bean类,包含phone,name,time这三个字段,然后创建AccountDao对数据增删改查:

public class AccountDao {public final static String TABLE_NAME = "account";
    private MyHelper helper;
    private String phone;

    public AccountDao(Context context){helper=new MyHelper(context);
    }public void insert(HistoryInfo info){SQLiteDatabase db=helper.getWritableDatabase();
        //根据手机号判断去重
        String[] colum = {"phone"};
        String where = "phone" + "= ?";
        String[] whereValue = {info.getPhone()};
        Cursor cursor = db.query(TABLE_NAME, colum, where, whereValue, null, null, null);
        while (cursor.moveToNext()){phone = cursor.getString(cursor.getColumnIndex("phone"));
        }cursor.close();
        ContentValues values=new ContentValues();
        values.put("phone",info.getPhone());
        values.put("name",info.getName());
        values.put("time",info.getTime());
        if(!TextUtils.isEmpty(phone)){db.update(TABLE_NAME,values,"phone" + "=?",new String[]{phone});
        }else {db.insert(TABLE_NAME,null,values);
        }db.close();
    }public int delete(String phone){SQLiteDatabase db=helper.getWritableDatabase();
        int count=db.delete(TABLE_NAME,"phone=?",new String[]{phone +""});
        db.close();
        return count;
    }public List<HistoryInfo> queryAll(){SQLiteDatabase db=helper.getWritableDatabase();
        Cursor cursor=db.query(TABLE_NAME,null,null,null,null,null,null);
        List<HistoryInfo> list=new ArrayList();
            while (cursor.moveToNext()) {HistoryInfo historyInfo = new HistoryInfo();
                historyInfo.setPhone(cursor.getString(cursor.getColumnIndex("phone")));
                historyInfo.setName(cursor.getString(cursor.getColumnIndex("name")));
                historyInfo.setTime(cursor.getLong(cursor.getColumnIndex("time")));
                list.add(historyInfo);
            }db.close();
            cursor.close();
            return list;
    }
}

然后监听是否点击登录历史按钮,如果上次登录成功,那么将这条数据插入到数据库中,点击历史按钮时查询列表,并且按照登录时间降序。

//是否显示历史登录列表
historyCB.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {@Override
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {if (isChecked) {initPopuWindow();//显示历史列表
            if (historyList.size() == 0) {pwdBottom.setVisibility(View.VISIBLE);
            } else {pwdBottom.setVisibility(View.GONE);
            }} else {selectPopupWindow.dismiss(); //隐藏列表
            pwdBottom.setVisibility(View.VISIBLE);
        }}
});
@Override
public void onClick(View v) {switch (v.getId()){case R.id.loginBtn:if(TextUtils.isEmpty(userET.getText().toString()) || TextUtils.isEmpty(pwdET.getText().toString())){Toast.makeText(LoginActivity.this,"账号或者密码不能为空",Toast.LENGTH_LONG).show();
              return;
          }else {HistoryInfo historyInfo = new HistoryInfo(userET.getText().toString(), "Tom", new Date().getTime());
              accountDao.insert(historyInfo);
              startActivity(new Intent(LoginActivity.this,new SecondActivity().getClass()));
          }break;
  }
}

这样仿QQ登录历史列表就完成了,希望对看到文章的同学有所帮助。下载完整demo地址:https://download.csdn.net/download/lou_liang/10418605

Android仿QQ登录下拉历史列表相关推荐

  1. Android仿微信首页下拉显示小程序列表

    花点时间重新熟悉一下AndroidUI方面的东西,把古董PullToRefreshView又撸了一遍,技术这种东西真是忘得快啊...在基础上新增一点东西,粗糙地实现了仿微信首页下拉显示小程序列表的样式 ...

  2. android微信下拉出现小程序,Android仿微信首页下拉显示小程序列表

    花点时间重新熟悉一下AndroidUI方面的东西,把古董PullToRefreshView又撸了一遍,技术这种东西真是忘得快啊...在基础上新增一点东西,粗糙地实现了仿微信首页下拉显示小程序列表的样式 ...

  3. android 美团下拉菜单,Android仿美团分类下拉菜单实例代码

    本文实例为大家分享了Android仿美团下拉菜单的实现代码,分类进行选择,供大家参考,具体内容如下 效果图 操作平台 AS2.0 第三方框架:butterknife build.gradle depe ...

  4. Android仿QQ登录界面示例,实现登录、注册功能。

    首语 欢迎大家关注我的公众号:八归少年 微信公众号优先更新文章.扫描上面二维码即可关注!一起进步,一同成长. Android开发经常用到注册.登录功能,于是便整理出一般通用的登录界面,并实现其相应功能 ...

  5. Android实现qq登录注册和好友列表界面

    学习Android已经有一个多月了,老师留了实现qq登陆注册和好友列表的作业,要求: 设计登录界面,注册界面和好友列表界面. 在登录界面输入用户名"admin",密码"a ...

  6. android支付宝动态更新,Android仿支付宝首页下拉刷新

    题外话 学习了Behavior之后,发现效果都可以通过Behavior来实现,包括支付宝首页的下拉刷新效果,其重点效果指标在于下滑上部分的布局,同样能够进行下拉刷新,其下拉刷新的布局展开的位置在中间部 ...

  7. IOS邮箱登录下拉提示列表--输入邮箱自动填充提示列表(附gif+源码)

    前几天的项目里要做个小效果:类似新浪微博那样输入邮箱登录时出现关联的邮箱后缀下拉提示,如下: (上边下拉列表实际是textfiled+tableView,已经封装成小控件,根据项目需求,稍作调整即可直 ...

  8. Android 仿QQ登录动态背景

    效果图片: 1, 自定义视频类 继承VideoView public class CustomVideoView extends VideoView {public CustomVideoView(C ...

  9. Android:ExpandableListView实现下拉二级列表

    来源:菜鸟教程,下面是直接下载的地址 ExpandableListViewDemo.zip 下面是实现案例 还没弄明白,但是抄源码确实实现了 下面是菜鸟教程的地址,自己留着备用记录一下,xdm,冲~~ ...

最新文章

  1. 一文详解 YOLO 2 与 YOLO 9000 目标检测系统
  2. 用户进程与内核进程通信netlink实例
  3. shell条件测试操作 if分支 for循环 while 循环
  4. VTK:图片之CannyEdgeDetector
  5. LOG与DOG的关系
  6. CC攻击(N个免费代理形成的DDOS)
  7. 判断输入几位数的正则_判断是几位数,并逆向输出此数的程序算法和说明
  8. python是什么意思中文、好学吗-Python的前景和Python好不好学呢?
  9. java reactor模式例子_JAVA BIO,NIO,Reactor模式总结
  10. NLP标注神器:可同时对文本类型与实体类型进行标注(动图演示)
  11. mysql如何导入mdl文件_将sql文件导入PowerDesigner中的方法(将oracle sql文件转换成mysql)...
  12. 爬虫 --- 08. 全站爬取(CrawlSpider), 分布式, 增量式爬虫
  13. matlab求解常微分方程组——dsolve与ode45
  14. Adobe Premiere Pro CC教程笔记
  15. easyexcel使用问题:使用时导出的excel文件损坏,打开不了,后台没异常错误
  16. Asp.net utf-8 编码中文乱码完全解决方案
  17. 世界药王再遭“无间道”,药企如何保护自己的数据
  18. 《MySQL性能优化和高可用架构实践》阅读总结
  19. 吴恩达Coursera深度学习课程 deeplearning.ai (5-2) 自然语言处理与词嵌入--编程作业(二):Emojify表情包
  20. [转]解析CSS设置默认字体样式

热门文章

  1. 2.CCNP闫辉视频笔记EIGRP
  2. zendstudio 各版本下载
  3. OpenSees二次开发
  4. B2B2C商城系统 -多端+多店+社交+新零售网上商城开发
  5. Linux之cmatrix软件安装及使用
  6. 三档按键定时器c语言程序,单片机C语言程序设计:定时器控制4个LED滚动闪烁
  7. 中国人工智能行业发展状况与竞争格局分析报告2022-2028年版
  8. Solaris 10 学习笔记
  9. c# 获取路径的盘符_C# 如何获取映射网络驱动器的共享路径 | 学步园
  10. 数字图像处理(matlab版)课本源码和图片