2014-07-02 33 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