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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章