杨光福-手机卫士day9

上传人:平*** 文档编号:16383152 上传时间:2017-11-07 格式:DOC 页数:43 大小:492.45KB
返回 下载 相关 举报
杨光福-手机卫士day9_第1页
第1页 / 共43页
杨光福-手机卫士day9_第2页
第2页 / 共43页
杨光福-手机卫士day9_第3页
第3页 / 共43页
杨光福-手机卫士day9_第4页
第4页 / 共43页
杨光福-手机卫士day9_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《杨光福-手机卫士day9》由会员分享,可在线阅读,更多相关《杨光福-手机卫士day9(43页珍藏版)》请在金锄头文库上搜索。

1、 手机卫士讲师:杨光福Day982_程序锁的 UI_481、参照腾讯手机管家,看一看演示软件锁功能;设置密码,启动软件试试;2、在高级工具里面添加“程序锁”enterApplock,添加点击事件。3、创建新的类 AppLockActivity,并在功能清单文件注册;写布局文件标题用线性布局:4、初始化两个 TextView 和线性布局加上点击事件;A:初始化 TextView 和线性布局B:两个 TextView 加上点击事件Overridepublic void onClick(View v) switch (v.getId() case R.id.tv_unlock:tv_unlock.s

2、etBackgroundResource(R.drawable.tab_left_pressed);tv_locked.setBackgroundResource(R.drawable.tab_right_default);ll_unlock.setVisibility(View.VISIBLE);ll_locked.setVisibility(View.GONE);break;case R.id.tv_locked:tv_unlock.setBackgroundResource(R.drawable.tab_left_default);tv_locked.setBackgroundResou

3、rce(R.drawable.tab_right_pressed);ll_unlock.setVisibility(View.GONE);ll_locked.setVisibility(View.VISIBLE);break;演示测试,看看效果;5、未加锁模块的实现A:初始化两个 ListViewlv_unlock = (ListView) findViewById(R.id.lv_unlock);lv_locked = (ListView) findViewById(R.id.lv_locked);B:利用软件管理模块已经写过的工具得到系统所有的信息/先得到安装的所有程序/建议在子线程去写a

4、ppInfos = AppInfoProvider.getAllAppInfos(this);C:创建适配器 AppLockAdapter 并自定义 Item 的 View布局文件名叫 list_applock_item.xml使用相对布局比较方便D:在适配器的 getView()方法里实例化布局文件;View view = null;ViewHolder holder = null;if(convertView != null& convertView instanceof RelativeLayout)view = convertView;holder = (ViewHolder) vie

5、w.getTag();elseview = View.inflate(getApplicationContext(), R.layout.list_applock_item, null);holder = new ViewHolder();holder.iv_icon = (ImageView) view.findViewById(R.id.iv_icon);holder.tv_name = (TextView) view.findViewById(R.id.tv_name);view.setTag(holder);AppInfo appInfo = appInfos.get(position

6、);holder.iv_icon.setImageDrawable(appInfo.getIcon();holder.tv_name.setText(appInfo.getName();return view;E:设置未加锁个数A:定义 ID 为 tv_unlock_count、tv_locked_count 初始 TextViewtv_unlock_count = (TextView) findViewById(R.id.tv_unlock_count);tv_locked_count = (TextView) findViewById(R.id.tv_locked_count);B:在 g

7、etCount()方法赋值;public int getCount() tv_unlock_count.setText(未加锁软件:+appInfos.size()+ 个);return appInfos.size();83_创建已加锁数据_221、创建数据库,用户保存已加锁数据;A:基于 BlackNumberDBOpenHelper 修改名称 AppLockDBOpenHelperB:修改数据库名称 blacknumber.db - applock.dbC:修改表明:改成如下/* _id 主键 自增长 ,packname 包名*/private String sql = create ta

8、ble applock(_id integer primary key autoincrement,packname varchar(20);D:基于BlackNumberDao 复制改名成 AppLockDaopublic class AppLockDao private AppLockDBOpenHelper openHelper;public AppLockDao(Context context)openHelper = new AppLockDBOpenHelper(context);/* 增加一条信息*/public void add(String packname )SQLiteD

9、atabase db = openHelper.getWritableDatabase();ContentValues values = new ContentValues();values.put(packname, packname);db.insert(applock, null, values);db.close();/* 删除一条信息* param packname*/public void delete(String packname) SQLiteDatabase db = openHelper.getWritableDatabase();db.delete(applock, p

10、ackname=?, new Stringpackname);db.close();/* 查询一条信息是否存在*/public boolean find(String packname)boolean result = false;SQLiteDatabase db = openHelper.getReadableDatabase();Cursor cursor = db.query(applock, null, packname=?, new Stringpackname, null, null, null);if(cursor.moveToNext()result = true;curso

11、r.close();db.close();return result;2、小锁上加上 ID,设置点击事件A:list_applock_item 里面,小锁图标加上 ID:iv_statusB:初始化并且设置点击事件,并实例化 AppLockDaoholder.iv_status.setOnClickListener(new OnClickListener() Overridepublic void onClick(View v) /从当前界面移除 ItemappInfos.remove(position);/把移除的 Item对象对应的包名加到数据库里面dao.add(appInfo.getP

12、ackageName();/通知 页面刷新notifyDataSetChanged(););3、区分未加锁和已经加锁区分-未加锁的实现 ;A:定义两个集合/未加 锁private List unlockappInfos ;/已加锁private List lockedappInfos ;B:数据初始化-数据区分开来appInfos = AppInfoProvider.getAllAppInfos(this);unlockappInfos = new ArrayList();lockedappInfos = new ArrayList();for(AppInfo appInfo : appInf

13、os)if(dao.find(appInfo.getPackageName()lockedappInfos.add(appInfo);elseunlockappInfos.add(appInfo);C:在适配器定义字段区分未加锁已加锁,在构造方法里传参数/* true未加锁,false已加锁*/private boolean unlockflag = true;public AppLockAdapter(boolean unlockflag) this.unlockflag = unlockflag;D:在 getCount()方法修改成如下:public int getCount() if(

14、unlockflag)tv_unlock_count.setText(未加锁软件:+unlockappInfos.size()+ 个 );return unlockappInfos.size();elsetv_locked_count.setText(已加锁软件:+lockedappInfos.size()+个);return lockedappInfos.size();E:在 getView()处理AppInfo appInfo = null;if(unlockflag)appInfo = unlockappInfos.get(position);elseappInfo = lockedap

15、pInfos.get(position);F:点击事件修改if(unlockflag)/从当前界面移除ItemunlockappInfos.remove(position);/把移除的Item对象对应的包名加到数据库里面dao.add(appInfo.getPackageName();/通知 页面刷新notifyDataSetChanged();4、已加锁的实现A:初始化已加锁的适配器lv_unlock.setAdapter(new AppLockAdapter(true);/未加锁lv_locked.setAdapter(new AppLockAdapter(false);/已加锁B:已加锁

16、的点击事件if(unlockflag)/从当前界面移除 ItemunlockappInfos.remove(position);/把移除的 Item对象对应的包名加到数据库里面dao.add(appInfo.getPackageName();elselockedappInfos.remove(position);dao.delete(appInfo.getPackageName();运行看看演示效果C:解决移除了,界面没有变化的问题处理集合数据:if(unlockflag)/从当前界面移除ItemunlockappInfos.remove(position);/把移除的Item对象对应的包名加到数据库里面dao.add(appInfo.getPack

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号