GridView(1)+包管理区获取已经安装程序

基本属性
numColumns=”auto_fit”列数根据屏幕大小自动适应
verticalSpacing=”“垂直方向的间距
stretchMode=”columnWidth|spacingWidth”
把最左边和右边的空白分出去: 第一个分给视图 第二个分给界面空白处
获取安装列表

//这个是最后获取的实体类list
        List<AppInfo>appInfoList=new ArrayList<AppInfo>();
//用包管理器处理
        PackageManager packageManager = getPackageManager();
//用包管理器的方法参数tag="0"直接拿到list  其中PcakageInfo是系统自带的
        List<PackageInfo> installedPackages = packageManager.getInstalledPackages(0);
        for(int i=0;i<installedPackages.size();i++)
        {
            PackageInfo packageInfo = installedPackages.get(i);
            AppInfo appInfo=new AppInfo();
            //PackageInfo转换为自己的类
appInfo.setAppName(packageInfo.applicationInfo.loadLabel(packageManager).toString());
            appInfo.setAppIcon(packageInfo.applicationInfo.loadIcon(packageManager));
            appInfo.setPackageName(packageInfo.packageName);
            appInfo.setVersionCode(packageInfo.versionCode);
            appInfo.setVersionName(packageInfo.versionName);
            //过滤掉系统自带的应用
            if((packageInfo.applicationInfo.flags& ApplicationInfo.FLAG_SYSTEM)==0)
            {
               appInfoList.add(appInfo);
            }
        }

适配器

ViewHolder holder;
        if(convertView==null)
        {
            convertView=View.inflate(context, R.layout.item_gridview2,null);
            holder=new ViewHolder();
            holder.img_appIcon= (ImageView) convertView.findViewById(R.id.img_appIcon);
            holder.tv_appName= (TextView) convertView.findViewById(R.id.tv_appName);
            convertView.setTag(holder);
        }
        else
        {
            holder= (ViewHolder) convertView.getTag();
        }

        AppInfo appInfo=appInfoList.get(position);
        holder.img_appIcon.setImageDrawable(appInfo.getAppIcon());
        holder.tv_appName.setText(appInfo.getAppName()+" "+appInfo.getVersionName());

完整代码

public class GridAdapter2 extends BaseAdapter {

    private Context context;
    private List<AppInfo>appInfoList;
    public GridAdapter2(Context context, List<AppInfo> appInfoList)
    {
        this.appInfoList=appInfoList;
        this.context=context;
    }

    @Override
    public int getCount() {
        return appInfoList.size();
    }

    @Override
    public Object getItem(int position) {
        return null;
    }

    @Override
    public long getItemId(int position) {
        return 0;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

        ViewHolder holder;
        if(convertView==null)
        {
            convertView=View.inflate(context, R.layout.item_gridview2,null);
            holder=new ViewHolder();
            holder.img_appIcon= (ImageView) convertView.findViewById(R.id.img_appIcon);
            holder.tv_appName= (TextView) convertView.findViewById(R.id.tv_appName);
            convertView.setTag(holder);
        }
        else
        {
            holder= (ViewHolder) convertView.getTag();
        }

        AppInfo appInfo=appInfoList.get(position);
        holder.img_appIcon.setImageDrawable(appInfo.getAppIcon());
        holder.tv_appName.setText(appInfo.getAppName()+" "+appInfo.getVersionName());

        return convertView;
    }

    public class ViewHolder
    {
        ImageView img_appIcon;
        TextView tv_appName;
    }
}
发布了23 篇原创文章 · 获赞 0 · 访问量 4560
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章