12/21(周三)

今日进度:主要做的是关于UI界面完善,做出如下效果(类似于英汉字典的设计)

http://www.ophonesdn.com/article/show/111

实现:

TextWatcher mTextWatcher = new TextWatcher() {@Overridepublic void onTextChanged(CharSequence s, int start, int before,int count) {// TODO Auto-generated method stub}@Overridepublic void beforeTextChanged(CharSequence s, int start, int count,int after) {// TODO Auto-generated method stub}@Overridepublic void afterTextChanged(Editable s) {// 必须将user_name字段的别名设为_idCursor cursor = dbHelper.rawQuery("select user_name as _id from "+ AvataDBHelperOnUser.TBNAME + " where user_name like ?",new String[] { s.toString() + "%" });UserSaveAdapter dictionaryAdapter = new UserSaveAdapter(getApplicationContext(), cursor, true);// actvWord是在Main类中定义的AutoCompleteTextView类型的变量edt_login_username.setAdapter(dictionaryAdapter);}};

然后在LoginActivity中的onceate()方法里面为edittextview设置监听器

edt_login_username.addTextChangedListener(mTextWatcher);

最后还有一个CursorAdapter的重写,基本与英汉词典的相似(上有链接)

收获:

1.学会了上面效果的实现,以及TextWatcher的使用

2.对SQLiteOpenHelper类的使用更加熟悉,另外,了解到直接实例化一个DBHelper对象不会调用DBHelper的onCreate()方法,只有在调用getWritableDatabase();或者getReadableDatabase()时才会调用oncreate方法!

12/22(周四)

今日进度:主要做的是关于UI界面完善,大部分时间都花在了Login界面的逻辑完善上!

问题:这个一个在通过调用自己重写的SQLiteOpenHelper类的查询方法时碰到的问题

// 数据库版本private static final int VERSION = 1;public static final String TBNAME = "user_information";// 新建一个表String sql = "create table if not exists " + TBNAME+ "(user_name TEXT PRIMARY KEY,user_pwd TEXT)";

这里建了一张用户信息表,里面至存放了2个字段,用户名和密码.

public Cursor query(String user_name) {SQLiteDatabase db = getReadableDatabase();return db.query(TBNAME, new String[] { "user_pwd" }, "user_name=?",new String[] { user_name }, null, null, null);}

就是调用这个方法,通过用户名获取得到数据库中相应的密码。

dbHelper = new AvataDBHelperOnUser(getApplicationContext(), "userDB");
Cursor cursor = dbHelper.query(sp_name.trim());
这是在loginActivity中调用查询方法,获取到一个Cursor(游标)

而一般我这么写,cursor中只会存在一条数据,所以我想直接通过cursor.getString(0)获取密码的值,但是此时问题出现了
程序老是报异常常:{com.avata.mb.activity/com.avata.mb.activity.LoginActivity}: android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 1
解决方案:在cursor.getString(0)之前必须加一句 cursor.moveToFirst(),让游标指向第一条数据!
细节决定成败啊!

收获:
1.熟悉了SQLiteOpenHelper的使用
2.温习了一下关于sharedPreference的使用:
//实例化一个SharedPreferences 对象
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
/** 以sharedpreferences的形式保存 */private void save2sp(String name, Boolean name_ischecked,Boolean pwd_ischecked, Boolean com_ischecked, Boolean exa_ischecked) {SharedPreferences.Editor editor = settings.edit();editor.putBoolean("is_saved", true);editor.putBoolean("name_ischecked", name_ischecked);// 用户名editor.putBoolean("pwd_ischecked", pwd_ischecked);// 密码editor.putBoolean("com_ischecked", com_ischecked); // 编辑editor.putBoolean("exa_ischecked", exa_ischecked); // 审核editor.putString("username", name);editor.commit();}


//获取SharedPreferences 对象里面的数据
 private void getDataFromSp() {settings = getSharedPreferences(PREFS_NAME, 0);boolean is_saved = settings.getBoolean("is_saved", false);}



android开发日记 ——avata项目相关推荐

  1. 云炬Android开发笔记 3-1项目架构初始化

    一.项目架构初始化 1.我们的应用只有一个activity,它里面是多个fragment进行切换的,这样的好处是应用会非常顺滑,并且一个activity也可以进行很多全局的处理. 在类前加上final ...

  2. 云炬Android开发笔记 2-1项目初始化

    一.项目基础 1.创建项目 修改完成后 2.修改具体项目的module名字 3.创建annotationmodule,一定要选择javalibrary.因为它的注解里面会使用很多标准的Java sdk ...

  3. Android开发日记

    Android日记 欢迎使用Markdown编辑器 新的改变 功能快捷键 合理的创建标题,有助于目录的生成 如何改变文本的样式 插入链接与图片 如何插入一段漂亮的代码片 生成一个适合你的列表 创建一个 ...

  4. Android开发MVP模式--项目实战

    1 前言 苏宁+App是苏宁易购集团零售云研发中心分销研发中心主要产品之一,由于项目处于初期阶段,业务逻辑复杂,导致业务需求变动快,常常在开发甚至测试过程中出现界面或者后台接口调整的情况. App客户 ...

  5. 【Android开发日记】 新浪微博API SSO授权 分享

    其实新浪API的说明文档已经说的很明白了,demo里面注释也很清晰. 官方SDK下载地址:https://github.com/sinaweibosdk/weibo_android_sdk 我直接把我 ...

  6. 【Android开发日记】第一个任务Android Service!Service靴+重力感应器+弹出窗口+保持执行...

    前言: 近期在写一个小程序,需求是手机摇一摇就弹窗出来.第一次使用了Service,学习了两天,实现了Service弹窗,开机启动,Service启动和销毁,Service保持一直执行. 满足了自己的 ...

  7. 云炬Android开发笔记 1项目架构设计与模块分解

    一.项目架构设计与模块分解 ② ③ ④ ⑤ ⑥ 2. ② 注: 1.WeakHashMap的键值对在内存需要的时候可以被回收 2.static final定义的变量名需要大写,并且用下划线进行分隔.如 ...

  8. Android开发之修改项目的仓库地址亲测有效

    很简单: 直接找到你项目git文件夹下面的config文件里面的url即可:如下图: 第一步: 第二步: 第三步: 修改里面的url仓库地址: 再介绍一种最简单的修改办法:Windows和Mac通用 ...

  9. Android开发日记(六)

    textViewUserName.setCursorVisible(false);//隐藏光标 textViewUserName.setFocusable(false);//失去焦点 textView ...

  10. 【Android开发日记】妙用 RelativeLayout 实现3 段布局

    在设计过程中,我们经常会遇到这样的需求: 把一条线3控制,左对齐左控制,右侧控制右对齐,中间控制,以填补剩余空间. 或者一列内放3个控件,上面的与顶部对齐,以下的沉在最底部,中间控件是弹性的.充满剩余 ...

最新文章

  1. java查看内存地址_Java内存机制和内存地址
  2. 调试JDK源码-HashSet实现原理
  3. 阿里开发者招聘节 | 面试题14:如何实现两金额数据相加(最多小数点两位)...
  4. ITK:计算CovariantVector的范数并将其标准化
  5. 【剑指offer】面试题29:顺时针打印矩阵(Java)
  6. 简单的Postman,还能玩出花?
  7. ubuntu中由apt-get获得的文件包保存在哪里?
  8. jQuery 源码系列(四)Tokens 词法分析
  9. 上海纽约大学计算机专业怎样,聚焦|对话上纽大计算机科学教授郭斯瑶
  10. RAP框架练习(续)
  11. 如何创建一个<style> tag with Javascript?
  12. 我的开源项目:JPEG分析器
  13. 离散作业--求左陪集
  14. 利用LM317的LED恒流源电路图
  15. python简单实现天猫手机评论标签提取--自然语言处理
  16. 积极主动的思想认识是提高学习效率的关键,一次和师傅的深入交流让我受益匪浅
  17. grads 相关系数_era interim说明文件
  18. 使用hydra密码字典破解Windows10登陆密码
  19. ios-UI-汤姆猫德游戏实现
  20. cortana android 地图,地图-系统爱好者

热门文章

  1. 编程也需要有大局观 新鲜出炉的大局观 了解一下
  2. 87.3 laravel中常见问题以及解决方案
  3. 来自清华学子的一个自述---在树洞里
  4. 软件需求分析——需求基础
  5. 用户流失、股价重挫的Netflix究竟发生了什么?
  6. poco库 文件服务器,poco
  7. Win10如何关闭win11自动更新?
  8. 微软中国CEO梁念坚 : Windows Phone有四大优点
  9. 小程序页面浏览到底部触发事件
  10. 简信CRM:CRM科学服务体系,促进企业销售增长