我在我的应用上使用了sectioned recyclerview。当一段Recyclerview的页脚点击时,我试图加载更多数据... sectionedrecyclerview就像这里:https://gist.github.com/gabrielemariotti/4c189fb1124df4556058
我的代码是这样的:
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 :(得分:0)
这是我在包装器类中使用的内容:
public void add(@NonNull E object) {
objects.add(object);
if (objects.size() > 1)
notifyItemInserted(objects.size() - 1);
else
notifyDataSetChanged();
}
答案 1 :(得分: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();
}
});
}