@Override public View getView(int position, View convertView, ViewGroup parent) { View view; ViewHolder holder; if (null == convertView) { view = View.inflate(getApplicationContext(), R.layout.app_list, null); holder = new ViewHolder(); holder.app_icon = (ImageView) view.findViewById(R.id.applock_icon); holder.app_status = (ImageView) view.findViewById(R.id.applock_status); holder.app_name = (TextView) view.findViewById(R.id.applock_name); view.setTag(holder); } else { view = convertView; holder = (ViewHolder) view.getTag(); } AppInfo appInfo = appInfos.get(position); holder.app_icon.setImageDrawable(appInfo.getAppicon()); holder.app_name.setText(appInfo.getAppname()); if (lockedPacknames.contains(appInfo.getPackname())) { holder.app_status.setImageResource(R.drawable.lock); } else { holder.app_status.setImageResource(R.drawable.unlock); } return view; }
@Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { AppInfo appInfo = (AppInfo) app_listview.getItemAtPosition(position); String packagename = appInfo.getPackname(); ImageView status_icon = (ImageView) view.findViewById(R.id.applock_status); if (lockedPacknames.contains(packagename)) { Uri uri = Uri.parse("content://lang.com.applocker.applock/DELETE"); getContentResolver().delete(uri, null, new String[] {packagename}); status_icon.setImageResource(R.drawable.unlock); lockedPacknames.remove(packagename); } else { Uri uri = Uri.parse("content://lang.com.applocker.applock/ADD"); ContentValues values = new ContentValues(); values.put("packname", packagename); getContentResolver().insert(uri, values); status_icon.setImageResource(R.drawable.lock); lockedPacknames.add(packagename); } }