Android 开发程序锁应用简单实例_Android

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开发简单实例、android简单实例、android简单项目实例、android 简单app实例、android最简单实例,以便于您获取更多的相关知识。

时间: 2024-09-18 16:26:40

Android 开发程序锁应用简单实例_Android的相关文章

Android 开发程序锁应用简单实例

1.基本思路 ①.创建已加锁应用的数据库(字段:_id,packagename),如果应用已加锁,将加锁应用的包名维护到数据库中 ②.已加锁+未加锁 == 手机中所有应用(AppInfoProvider) 2.已加锁和未加锁的数据适配器 class MyAdapter extends BaseAdapter{ private boolean isLock; /** * @param isLock 用于区分已加锁和未加锁应用的标示 true已加锁数据适配器 false未加锁数据适配器 */ pub

Android开发入门之对话框简单用法_Android

本文实例讲述了Android开发入门之对话框简单用法.分享给大家供大家参考,具体如下: 注:本文只是一个学习笔记 用以记录自己学到哪了 1.获得AlertDialog的静态内部类Builder对象,由此类来创建对话框 2.通过Builder对象设置对话框的标题 按钮以及按钮响应的事件 3.调用Builder的Create()方法创建对话框 4.调用AlertDialog的show()方法显示对话框 main.xml文件 <?xml version="1.0" encoding=&

Android开发之时间日期操作实例_Android

相信对于手机的时间日期设置大家一定都不陌生吧,今天举一个关于时间日期设置的示例,其中有些许不完善之处,例如如何使设置的时间日期和手机系统同步等.感兴趣的读者可以根据自身经验加以完善. 现来看看具体示例,希望对大家有所帮助. 首先是时间设置: .java文件(MainActivity.java)代码如下: package com.example.activity_time_date; import java.util.Calendar; import android.app.Activity; i

Android使用SQLite数据库的简单实例_Android

先画个图,了解下Android下数据库操作的简单流程: 1.首先,写一个自己的数据库操作帮助类,这个类继承自Android自带的SQLiteOpenHelper. 2.在自己的DAO层借助自己的Helper写数据库操作的一些方法 3.Activity调用DAO层的数据库操作方法进行操作 下面例子是: 1.Helper 复制代码 代码如下: package cn.learn.db.util; import android.content.Context;import android.databas

Android中AnimationDrawable使用的简单实例_Android

首先,可以在drawable文件夹下定义一个xml的文件.如下所示: 复制代码 代码如下: <animation-list xmlns:android="http://schemas.android.com/apk/res/android"    android:oneshot="true">    <item android:drawable="@drawable/compass_1" android:duration=&qu

android动态壁纸调用的简单实例_Android

调用后动态壁纸其实是显示在Activity的后面,而Activity则是透明显示,这样就可以看到下面的动态壁纸,如果Activity不是透明的则什么也看不到. 代码中有用到两个接口 IWallpaperService mService; IWallpaperEngine mEngine; 我们可以看到该目录下面有三个aidl接口,分别是 复制代码 代码如下: interface IWallpaperConnection {     void attachEngine(IWallpaperEngi

Android管理与操作Wifi简单实例源码_Android

因为需要一直在弄网络的问题,今天看了一下Wifi的操作,经过整理,做出来了一个类,可能不全,但是个人感觉已经完全能够满足需要了,当然,里面的方法也有可能是错误的或者是不全的,这个类我没有进行完整的测试,只测试了其中的一些方法. 其实操作Wifi也是很简单的,主要使用以下几个对象或变量: private WifiManager wifiManager;// 声明管理对象OpenWifi private WifiInfo wifiInfo;// Wifi信息 private List<ScanRes

Android开发中CheckBox的简单用法示例_Android

本文实例讲述了Android开发中CheckBox的简单用法.分享给大家供大家参考,具体如下: CheckBox是一种在界面开发中比较常见的控件,Android中UI开发也有CheckBox,简单的说下它的使用,每个CheckBox都要设置监听,设置的监听为CompouButton.OnCheckedChangedListener(). package com.zhuguangwei; import android.app.Activity; import android.os.Bundle;

Android管理与操作Wifi简单实例源码

因为需要一直在弄网络的问题,今天看了一下Wifi的操作,经过整理,做出来了一个类,可能不全,但是个人感觉已经完全能够满足需要了,当然,里面的方法也有可能是错误的或者是不全的,这个类我没有进行完整的测试,只测试了其中的一些方法. 其实操作Wifi也是很简单的,主要使用以下几个对象或变量: private WifiManager wifiManager;// 声明管理对象OpenWifi private WifiInfo wifiInfo;// Wifi信息 private List<ScanRes