当前位置: 代码迷 >> Android >> 一个上载的操作怎么更新进度条有代码
  详细解决方案

一个上载的操作怎么更新进度条有代码

热度:60   发布时间:2016-05-01 15:05:48.0
一个下载的操作如何更新进度条有代码
类似于安卓市场或机锋这样的 有个安装的按钮 然后有个进度条 当触发这个按钮后就会有进度条更新 这个我不知道如何去做了 请教一下大家 看代码

继承的BaseAdapter不多说

Java code
public class GamesInfoListAdapter extends BaseAdapter{................}


重点在getView

Java code
    @Override    public View getView(final int index, View convertView, ViewGroup parent) {        Log.d("ccf", "getView"+index);        final GridHolder holder;        if (convertView == null) {               convertView = mInflater.inflate(R.layout.gridview_item, null);               holder = new GridHolder();            holder.appImage = (ImageView)convertView.findViewById(R.id.itemImage_logo);            holder.appName = (TextView)convertView.findViewById(R.id.itemText_name);            holder.appNet = (TextView)convertView.findViewById(R.id.itemText_type_name);            holder.btns = (ImageButton)convertView.findViewById(R.id.btns);            holder.size = (TextView)convertView.findViewById(R.id.tv_game_size);            holder.pro = (ProgressBar) convertView.findViewById(R.id.progressBar1);            holder.textView = (TextView) convertView.findViewById(R.id.tv_size);            holder.ratingBarScore = (RatingBar)convertView.findViewById(R.id.ratingBar_score);                        convertView.setTag(holder);           }else{             holder = (GridHolder) convertView.getTag();           }        GameInfo info = null;        info = list.get(index);        if (info != null) {               if(info.getLogo_url() != null){                //如果取得到图片就用取到的网络图片,不然就用默认                Log.d("ccf", info.getLogo_url().substring(21));                holder.appImage.setImageBitmap(info.getDownloadBitmap());            }                        holder.appName.setText(info.getName());            holder.appNet.setText(info.getTypeName());            holder.size.setText(info.getSize());            holder.ratingBarScore.setRating(Float.parseFloat(info.getSourceScore()));//评分 暂时注销掉            holder.btns.setTag(info.getDownLoadFileUrl());            final String gameName;            gameName = info.getName();            holder.btns .setOnClickListener(new OnClickListener(){                @Override                public void onClick(View v) {   //触发下载操作                                        if (flag == 0){//判断点击标记                                        holder.ratingBarScore.setVisibility(View.GONE);                    holder.pro.setVisibility(View.VISIBLE);                    holder.textView.setVisibility(View.VISIBLE);                    if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){                    }else {//                        Toast.makeText(this, "没有SD卡", 1000).show();                        Log.v("wjp", "7889900");                    }                    final String downloadUrl =(String)v.getTag();                    Thread thread = new Thread(){                        int count = 0;                        public void run(){                          Log.v("ccf", "onClick");                          try {                              WebHelper.downLoadFile(context, downloadUrl, gameName);                              WebHelper.openFile(context, new File("/sdcard/9twan/"+ gameName +".apk"));                              if(!WebHelper.REGISTER_FLAG){                                  Log.v("GamesInfoListAdapter", "WebHelper.REGISTER_FLAG == false");                                  String imei, mac, mobile_number, model, brand;                                  boolean flag;                                  TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);                                  imei = tm.getDeviceId();                                  if(imei == null){                                      imei = "CUSTOM" + WebHelper.generateRandomIMEIString(15);                                  }                                  mac = null;//                                  mac = tm.getDeviceId(); //这个自己写个取WIFI的方法                                  if(mac == null){                                      mac = "CUSTOM" + WebHelper.generateRandomMacString(17);                                  }                                  mobile_number = tm.getLine1Number();                                  model = tm.getLine1Number();                                  brand = tm.getLine1Number();                                  flag = WebHelper.regDevice(context, "install", imei, mac, mobile_number, model, brand);                                  if(flag){                                      WebHelper.REGISTER_FLAG = true;                                      Log.v("GamesInfoListAdapter", "WebHelper.REGISTER_FLAG == true");                                  }                              }                                                        }catch (Exception e){                              e.printStackTrace();                          }                        }                    };                    Log.v("wjp", "正在运行"+thread.getName());                    thread.start();                    Toast.makeText(context, "开始下载" + gameName, 0).show();                    holder.btns.setBackgroundResource(R.drawable.tab_out);                                        flag =1;                    }else {//                        Thread.interrupted();//暂停 返回boolean//                        Thread.sleep(3000);                                               holder.btns.setBackgroundResource(R.drawable.tab_install);                        flag =0;                                            }                }            });        }        return convertView;    }
  相关解决方案