在adapter 中进行数据的操作

package com.cvte.apkclassify;

import java.util.ArrayList;

import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.graphics.drawable.Drawable;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

public class ItemAdapter extends BaseAdapter {
    private Context context;
    private LayoutInflater inflater;
    private PackageManager pManager ;
    private ArrayList<PackageInfo> apps;
    private ArrayList<ApkBean>  allApkBeans;
    private ApkBean bean = new ApkBean();
    private DBUtils utils ;
    private ApplicationInfo appinfo;
    private static int ll = 1;
    
    public ItemAdapter(Context c) {
        super();
        this.context = c;
        pManager = context.getPackageManager();
        apps = (ArrayList<PackageInfo>) GetAllAppInfo.getAllapps(context);
        utils = new DBUtils(context);
        allApkBeans = (ArrayList<ApkBean>) utils.getAllRecords();


        for (int i = 0; i < apps.size(); i++) {
            bean = new ApkBean();
            bean.setApkname(pManager.getApplicationLabel(apps.get(i).applicationInfo).toString());
            bean.setKind(0);
            bean.setPackagename(apps.get(i).applicationInfo.packageName);
            utils.insert(bean);
        }
    }

    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return apps.size();
    }

    @Override
    public Object getItem(int position) {
        // TODO Auto-generated method stub
        return apps.get(position);
    }

    @Override
    public long getItemId(int position) {
        // TODO Auto-generated method stub
        return 0;
    }

    @Override
    public View getView(int position, View view, ViewGroup parent) {
        ViewHolder holder = null;
        inflater = LayoutInflater.from(context);
        if (view==null) {
            holder = new ViewHolder();
            view = inflater.inflate(R.layout.listitem, null);
            holder.apkimage = (ImageView)view.findViewById(R.id.apkimage);
            holder.apkname =(TextView)view.findViewById(R.id.apkname);
            holder.result = (TextView)view.findViewById(R.id.result);
            view.setTag(holder);
            
        }else{
            holder=(ViewHolder)view.getTag();
        }
        if (allApkBeans==null||allApkBeans.size()==0) {
            PackageInfo pinfo = apps.get(position);
            String name = pManager.getApplicationLabel(pinfo.applicationInfo).toString();
            holder.apkimage.setBackgroundDrawable(pManager.getApplicationIcon(pinfo.applicationInfo));
            holder.apkname.setText(name);
            holder.result.setText("未分类");

        }else{
            ApkBean bean = allApkBeans.get(position);
            holder.apkimage.setBackgroundDrawable( getIconFromPackageName(bean.getPackagename()));
            holder.apkname.setText(bean.getApkname());
            if (bean.getKind()!=0) {
                holder.result.setText("已经分类");
            }else{
                holder.result.setText("未分类");
            }
            
        }
        return view;
    }
    
    class ViewHolder{
        public ImageView apkimage;
        public TextView  apkname;
        public TextView  result;
    }

    private Drawable getIconFromPackageName(String name){
        Drawable image = null ;
        try {
            appinfo = pManager.getApplicationInfo(name, PackageManager.GET_META_DATA);
            image = pManager.getApplicationIcon(appinfo);
            
        } catch (NameNotFoundException e) {
            Log.i("no packagename","no packagename");
        }
        return image;
        
    }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值