我想动态添加项目到recyclerview。基于当前的json响应,我创建了recyclerview。但是我想使其动态化,因为我不知道将来在recyclerview中可能需要显示很多项目。没有固定的项目大小。我该如何解决。下面是我的代码。我们将不胜感激。谢谢!
公共类LeadRVAdapter扩展了RecyclerView.Adapter { 私有静态ArrayList leadLists;
public LeadRVAdapter(List<Lead> leadLists, FragmentNavigation fragmentNavigation) {
this.leadLists = (ArrayList<Lead>) leadLists;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
LayoutInflater layoutInflater = LayoutInflater.from(parent.getContext());
View listItem= layoutInflater.inflate(R.layout.lead_item, parent, false);
ViewHolder viewHolder = new ViewHolder(listItem);
return viewHolder;
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
final Lead myListData = leadLists.get(position);
holder.firstname.setText(myListData.getFirstname());
holder.leadno.setText(myListData.getLeadNo());
holder.leadstatus.setText(myListData.getLeadstatus());
holder.modTime.setText(myListData.getModifiedtime());
holder.parent1.setOnClickListener(view -> {
Bundle bundle = new Bundle();
bundle.putString("TYPE", myListData.getLeadNo());
//通过数据传递详细活动信息
Intent intent = new Intent(view.getContext(), DetailActivity.class);
intent.putExtra("Lead No", leadLists.get(position).getFirstname());
intent.putExtra("First Name", leadLists.get(position).getFirstname());
intent.putExtra("Lead Status", leadLists.get(position).getLeadstatus());
intent.putExtra("Modified Time", leadLists.get(position).getModifiedtime());
intent.putExtra("Last Name", leadLists.get(position).getLastname());
intent.putExtra("Mobile No", leadLists.get(position).getMobile());
intent.putExtra("Company", leadLists.get(position).getCompany());
intent.putExtra("Designation", leadLists.get(position).getDesignation());
view.getContext().startActivity(intent);
}
);
}
@Override
public int getItemCount() {
return leadLists.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
TextView leadstatus,firstname,modTime,leadno,lastname,mobile,company,designation;
public View parent1;
public ViewHolder(@NonNull View itemView) {
super(itemView);
firstname=itemView.findViewById(R.id.txt_firstName);
leadno=itemView.findViewById(R.id.txt_leadno);
leadstatus=itemView.findViewById(R.id.txt_leadStatus);
modTime=itemView.findViewById(R.id.txt_modifiedtime);
lastname=itemView.findViewById(R.id.txt_lastname);
parent1=itemView.findViewById(R.id.parent1);
mobile=itemView.findViewById(R.id.txt_mobile);
company=itemView.findViewById(R.id.txt_company);
designation=itemView.findViewById(R.id.txt_designation);
}
}
}
答案 0 :(得分:0)
您可以将新线索添加到LeadList中,并调用适配器的方法notifyDataSetChanged()。像这样:
leadLists.add(new Lead())
leadRVAdapter.notifyDataSetChanged()