国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android 開發程序鎖應用簡單實例

2019-12-12 05:00:11
字體:
來源:轉載
供稿:網友

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);

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 稻城县| 比如县| 合肥市| 筠连县| 靖边县| 洮南市| 出国| 阿合奇县| 新巴尔虎左旗| 胶南市| 清苑县| 瑞金市| 南澳县| 清镇市| 思南县| 垦利县| 清徐县| 徐水县| 小金县| 沅陵县| 中方县| 湾仔区| 贺州市| 封丘县| 沽源县| 涟水县| 宜春市| 万载县| 芜湖县| 遂昌县| 溧水县| 当涂县| 彰武县| 兰考县| 竹溪县| 尖扎县| 青岛市| 马尔康县| 将乐县| 平利县| 新巴尔虎右旗|