2014-07-02 31 views
0

我有进度条,gridview中的下载按钮。当gridview加载进度条不可见时。当我点击下载按钮时,进度条应该显示相应的位置,下载应该开始。我做了所有这些。但是当我上下移动gridview时,进度条会混乱。请帮助我。提前致谢。 我在ArrayAdapter的getview方法中做了很多。gridview中的进度条

@覆盖 公共查看getView(最终诠释的立场,观点convertView,ViewGroup以及母公司){

 if (convertView == null) { 

      LayoutInflater inflater = (LayoutInflater) context 
        .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      convertView = inflater.inflate(R.layout.gridviewcell, null); 
      viewHolder = new ViewHolderItem(); 
      viewHolder.progressBar=(ProgressBar) convertView.findViewById(R.id.progressBar_grid); 
      viewHolder.tv_ot_edition_name = (TextView) convertView 
        .findViewById(R.id.ot_edition_name); 
      viewHolder.tv_edition_description = (TextView) convertView 
        .findViewById(R.id.ot_edition_description); 
      viewHolder.downloadbutton = (ImageView) convertView 
        .findViewById(R.id.imgBtnbookdownload); 

      viewHolder.progressBar = (ProgressBar) convertView 
         .findViewById(R.id.progressBar_grid); 

      viewHolder.book_image = (ImageView) convertView.findViewById(R.id.imageView1); 
      //viewHolder.listener = new ItemClickListener() ; 
      convertView.setTag(viewHolder); 
      convertView.setTag(R.id.progressBar_grid, viewHolder.progressBar); 
      viewHolder.downloadbutton.setOnClickListener(new OnClickListener() { 

        @Override 
        public void onClick(View v) { 
         // TODO Auto-generated method stub 

         int getPosition = (Integer) viewHolder.progressBar.getTag(); 

        // books.get(getPosition).setSelected(v.isSelected()); 
         books.get(getPosition).setSelected(true); 
         MainActivity mainActivity=new MainActivity(GridviewDemo.this); 
         mainActivity.startdownload(viewHolder.progressBar); 
         viewHolder.progressBar.setVisibility(View.VISIBLE); 
        } 
       }); 

     } else { 
      viewHolder = (ViewHolderItem) convertView.getTag(); 
     } 

     viewHolder.progressBar.setTag(position); 
     viewHolder.tv_ot_edition_name.setText(books.get(position).getOt_edition_name()); 

     Typeface face = Typeface.createFromAsset(context.getAssets(), 
       "HelveticaBold.ttf"); 
     viewHolder.tv_ot_edition_name.setTypeface(face); 
     viewHolder.tv_edition_description.setTypeface(face); 
     viewHolder.tv_edition_description.setText(books.get(position) 
       .getOt_edition_description() 
       ); 



     Bitmap bitmap = BitmapFactory.decodeByteArray(books.get(position) 
       .getImage_url(), 0, books.get(position).getImage_url().length); 

     viewHolder.book_image.setImageBitmap(bitmap); 
    // viewHolder.downloadbutton.setOnClickListener(viewHolder.listener) ; 
     viewHolder.downloadbutton.setImageResource(books.get(position) 
       .getDownloadbtn_resid()); 
     final BookData data = (BookData)getItem(position) ; 
     //viewHolder.listener.setId(data.getId()) ; 
     //viewHolder.listener.setHolder(viewHolder) ; 
     //viewHolder.progressBar.setProgress(data.getProcess()) ; 






     return convertView; 
    } 
+0

如果您不介意显示所做的操作,请添加一些代码。 – Kailas

+0

感谢您的回复。请通过编辑的帖子。它的getView()方法 – shivakumar

+0

好吧,你是什么意思的“但进度条洗牌当我移动gridview上下”?意味着布局错位?和viewHolder.progressBar =(ProgressBar)convertView .findViewById(R.id.progressBar_grid); progressBar_grid的可见性设置为在xml文件中消失了吗? – Kailas

回答

0

当进度条是不可见的GridView负荷

设置能见度View.INVISIBLEView.GONE

当我点击下载按钮时,进度条应该与 对应的位置出现,下载应该开始。

将可见度设置为View.Visible。使用setProgress()incrementProgressBy()方法设置进度条ProgressBar

+0

我也尝试过。但是当向下/向上滚动时,进度条出现在下一页中。我重复下一页。我认为这是因为视图回收而发生的。 – shivakumar