1.基本思路
①.创建已加锁应用的数据库(字段:_ID,packagename),如果应用已加锁,将加锁应用的包名维护到数据库中
②.已加锁+未加锁 == 手机中所有应用(AppInfoProvIDer)
2.已加锁和未加锁的数据适配器
class MyAdapter extends BaseAdapter{ private boolean isLock; /** * @param isLock 用于区分已加锁和未加锁应用的标示 true已加锁数据适配器 false未加锁数据适配器 */ public MyAdapter(boolean isLock) { this.isLock = isLock; } @OverrIDe public int getCount() { if(isLock){ tv_lock.setText("已加锁应用:"+mlockList.size()); return mlockList.size(); }else{ tv_unlock.setText("未加锁应用:"+mUnLockList.size()); return mUnLockList.size(); } } @OverrIDe public AppInfo getItem(int position) { if(isLock){ return mlockList.get(position); }else{ return mUnLockList.get(position); } } @OverrIDe public long getItemID(int position) { return position; } @OverrIDe public VIEw getVIEw(int position,VIEw convertVIEw,VIEwGroup parent) { VIEwHolder holder = null; if(convertVIEw == null){ convertVIEw = VIEw.inflate(getApplicationContext(),R.layout.ListvIEw_islock_item,null); holder = new VIEwHolder(); holder.iv_icon = (ImageVIEw) convertVIEw.findVIEwByID(R.ID.iv_icon); holder.tv_name = (TextVIEw) convertVIEw.findVIEwByID(R.ID.tv_name); holder.iv_lock = (ImageVIEw) convertVIEw.findVIEwByID(R.ID.iv_lock); convertVIEw.setTag(holder); }else{ holder = (VIEwHolder) convertVIEw.getTag(); } final AppInfo appInfo = getItem(position); final VIEw animationVIEw = convertVIEw; holder.iv_icon.setBackgroundDrawable(appInfo.icon); holder.tv_name.setText(appInfo.name); if(isLock){ holder.iv_lock.setBackgroundResource(R.drawable.lock); }else{ holder.iv_lock.setBackgroundResource(R.drawable.unlock); } holder.iv_lock.setonClickListener(new OnClickListener() { @OverrIDe public voID onClick(VIEw v) { //添加动画效果,动画默认是非阻塞的,所以执行动画的同时,动画以下的代码也会执行 animationVIEw.startAnimation(mTranslateAnimation);//500毫秒 //对动画执行过程做事件监听,监听到动画执行完成后,再去移除集合中的数据, *** 作数据库,刷新界面 mTranslateAnimation.setAnimationListener(new AnimationListener() { @OverrIDe public voID onAnimationStart(Animation animation) { //动画开始的是调用方法 } @OverrIDe public voID onAnimationRepeat(Animation animation) { //动画重复时候调用方法 } //动画执行结束后调用方法 @OverrIDe public voID onAnimationEnd(Animation animation) { if(isLock){ //已加锁------>未加锁过程 //1.已加锁集合删除一个,未加锁集合添加一个,对象就是getItem方法获取的对象 mlockList.remove(appInfo); mUnLockList.add(appInfo); //2.从已加锁的数据库中删除一条数据 mDao.delete(appInfo.packagename); //3.刷新数据适配器 mlockAdapter.notifyDataSetChanged(); }else{ //未加锁------>已加锁过程 //1.已加锁集合添加一个,未加锁集合移除一个,对象就是getItem方法获取的对象 mlockList.add(appInfo); mUnLockList.remove(appInfo); //2.从已加锁的数据库中插入一条数据 mDao.insert(appInfo.packagename); //3.刷新数据适配器 mUnLockAdapter.notifyDataSetChanged(); } } }); } }); return convertVIEw; }}MyAdapter
mlockAdapter = new MyAdapter(true);lv_lock.setAdapter(mlockAdapter); mUnLockAdapter = new MyAdapter(false);lv_unlock.setAdapter(mUnLockAdapter);
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
总结以上是内存溢出为你收集整理的Android 开发程序锁应用简单实例全部内容,希望文章能够帮你解决Android 开发程序锁应用简单实例所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)