2016-12-26 22 views
0

我m在我的应用程序上使用分区回收站。我米试图加载时recyclerview的一个部分的脚注点击更多数据... sectionedrecyclerview就像这里:https://gist.github.com/gabrielemariotti/4c189fb1124df4556058如何在sectionedrecyclerview上单击页脚后加载更多数据?

我的代码是这样的:

class NewsSection_VideoHaber extends StatelessSection { 
     String title; 
     List<Haber> list; 


     public NewsSection_VideoHaber() { 
      super(R.layout.baslik_videohatti, R.layout.footer_videohaberhatti, R.layout.kategorili_haber_item); 
      this.title = ""; 
      this.list = getNews(); 



     } 

     private List<Haber> getNews() { 
      List<Haber> hnm=new ArrayList<Haber>(); 
      try { 
       hnm= new sunucudanGetirVideo().execute().get(); 
      } catch (InterruptedException e) { 
       e.printStackTrace(); 
      } catch (ExecutionException e) { 
       e.printStackTrace(); 
      } 
      return hnm; 
     } 

     @Override 
     public int getContentItemsTotal() { 
      return list.size(); 
     } 

     @Override 
     public RecyclerView.ViewHolder getItemViewHolder(View view) { 
      return new ItemViewHolder(view); 
     } 

     @Override 
     public void onBindItemViewHolder(RecyclerView.ViewHolder holder, int position) { 
      final ItemViewHolder itemHolder = (ItemViewHolder) holder; 
      final int pos=position; 

      TextView basliktv = (TextView) itemHolder.rootView.findViewById(R.id.haberBaslik); 
      basliktv.setText(list.get(position).getBaslik().toUpperCase()); 

      ImageView resim = (ImageView) itemHolder.rootView.findViewById(R.id.haberResim); 

      if(list.get(position).getResimurl().equals("null")){ 
       resim.setImageResource(R.drawable.ic_empty); 
      }else{ 

       if(list.get(position).getVideo()==0) { 

        Picasso.with(getActivity()) 
          .load(MainActivity.resimKucukUrl + list.get(position).getResimurl()) 
          .resize(800, 0) 

          .into(resim); 
       }else { 

        Picasso.with(getActivity()) 
          .load(MainActivity.resimKucukUrl + list.get(position).getResimurl()) 
          .into(resim); 
       } 

       Log.d("Haber Adapt:",list.get(position).toString()); 
      } 

      itemHolder.rootView.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 

        if(list.get(pos).getVideo()==1){ 
         Intent myIntent = new Intent(getActivity(), videoHaberDetay.class); 
         Log.d("Kategorili haber","Seçilen video haber id:"+list.get(pos).getId()); 
         myIntent.putExtra("haberId",""+ list.get(pos).getId()); 
         startActivityForResult(myIntent, 0); 
        }else{ 
         Intent myIntent = new Intent(getActivity(), haber_detay.class); 
         Log.d("Kategorili haber","Seçilen haber id:"+list.get(pos).getId()); 
         myIntent.putExtra("haberId",""+ list.get(pos).getId()); 
         startActivityForResult(myIntent, 0); 
        } 

       } 
      }); 
     } 

     @Override 
     public RecyclerView.ViewHolder getHeaderViewHolder(View view) { 
      return new HeaderViewHolder(view); 
     } 

     @Override 
     public void onBindHeaderViewHolder(RecyclerView.ViewHolder holder) { 

     } 

     @Override 
     public RecyclerView.ViewHolder getFooterViewHolder(View view) { 
      return new FooterViewHolder(view); 
     } 

     @Override 
     public void onBindFooterViewHolder(RecyclerView.ViewHolder holder) { 
      FooterViewHolder footerHolder = (FooterViewHolder) holder; 

      footerHolder.rootView.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        int sayi=list.size(); 
        List<Haber> load=new ArrayList<Haber>(); 
        try { 
         load= new sunucudanGetirVideoLoad(sayi).execute().get(); 
        } catch (InterruptedException e) { 
         e.printStackTrace(); 
        } catch (ExecutionException e) { 
         e.printStackTrace(); 
        } 
        for(int i=0;i<load.size();i++){ 

         list.add(load.get(i)); 

        } 
        int xmm=list.size(); 
        Toast.makeText(getActivity().getBaseContext(), String.format("Clicked on footer of Section %s", xmm), Toast.LENGTH_SHORT).show(); 
       } 
      }); 
     } 
    } 

所以绳拉结合我加入之后的项目列出... Arraylist项目将被添加到recyclerview,但如何?我知道我应该拨打onBindItemViewHolder方法,但如何发送持有人?

+0

您可以拨打后'notifyDataSetChanged'in recyclerview适配器列表已加载并添加。另外请确保您的新列表已加载。 –

+0

非常感谢@BatuhanCoşkunTeşekkürler –

+0

欢迎@ zhr.kucukkoc Rica ederim。 –

回答

0

这是我在我的包装类使用:

public void add(@NonNull E object) { 
     objects.add(object); 
     if (objects.size() > 1) 
      notifyItemInserted(objects.size() - 1); 
     else 
      notifyDataSetChanged(); 
    } 
+0

非常感谢@Jimit Patel –

0

我把它yehuuuuu:d看看我的代码:)家伙

public void onBindFooterViewHolder(RecyclerView.ViewHolder holder) { 
      FooterViewHolder footerHolder = (FooterViewHolder) holder; 


      footerHolder.rootView.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        int sayi=list.size(); 
        List<Haber> load=new ArrayList<Haber>(); 
        try { 
         load= new sunucudanGetirHaberLoad(sayi).execute().get(); 
        } catch (InterruptedException e) { 
         e.printStackTrace(); 
        } catch (ExecutionException e) { 
         e.printStackTrace(); 
        } 
        for(int i=0;i<load.size();i++){ 

         section_anaHaber.addItem (sayi+i,load.get(i)); 

        } 
        sectionAdapter.notifyDataSetChanged(); 

        int xmm=list.size(); 
        Toast.makeText(getActivity().getBaseContext(), String.format("Clicked on footer of Section %s", xmm), Toast.LENGTH_SHORT).show(); 

       } 
      }); 
     } 
相关问题