Android 開發(fā)程序鎖應用簡單實例
更新時間:2016年10月22日 08:45:58 投稿:lqh
這篇文章主要介紹了Android 開發(fā)程序鎖應用簡單實例的相關資料,需要的朋友可以參考下
1.基本思路
①.創(chuàng)建已加鎖應用的數據庫(字段:_id,packagename),如果應用已加鎖,將加鎖應用的包名維護到數據庫中
②.已加鎖+未加鎖 == 手機中所有應用(AppInfoProvider)
2.已加鎖和未加鎖的數據適配器
class MyAdapter extends BaseAdapter{ private boolean isLock; /** * @param isLock 用于區(qū)分已加鎖和未加鎖應用的標示 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) { //添加動畫效果,動畫默認是非阻塞的,所以執(zhí)行動畫的同時,動畫以下的代碼也會執(zhí)行 animationView.startAnimation(mTranslateAnimation);//500毫秒 //對動畫執(zhí)行過程做事件監(jiān)聽,監(jiān)聽到動畫執(zhí)行完成后,再去移除集合中的數據,操作數據庫,刷新界面 mTranslateAnimation.setAnimationListener(new AnimationListener() { @Override public void onAnimationStart(Animation animation) { //動畫開始的是調用方法 } @Override public void onAnimationRepeat(Animation animation) { //動畫重復時候調用方法 } //動畫執(zhí)行結束后調用方法 @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 類似UC瀏覽器的效果:向上滑動地址欄隱藏功能
這篇文章主要介紹了Android 類似UC瀏覽器的效果:向上滑動地址欄隱藏功能,需要的朋友可以參考下2017-12-12Android實現動態(tài)添加數據與堆疊折線圖詳解流程
堆疊折線圖是折線圖的一種,堆積折線圖用于顯示每一數值所占大小隨時間或有序類別而變化的趨勢,可能顯示數據點以表示單個數據值,也可能不顯示這些數據點。堆疊折線圖中,類別數據沿水平軸均勻分布,所有值數據沿垂直軸均勻分布2021-10-10