【问题标题】:How to add items dynamically to recyclerview?如何将项目动态添加到recyclerview?
【发布时间】:2020-02-23 18:57:33
【问题描述】:

我想将项目动态添加到 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);

    }
}

}

【问题讨论】:

    标签: android json textview android-recyclerview


    【解决方案1】:

    您可以将新线索添加到您的leadLists 并调用适配器的方法 notifyDataSetChanged() 。像这样:

    leadLists.add(new Lead())
    
    
    leadRVAdapter.notifyDataSetChanged()
    

    【讨论】:

    • 我应该在哪里添加这段代码?我应该删除什么?
    • 首先recyclerview设置适配器。然后将此代码添加到 json 响应来自的行。您可以为您更改此代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-22
    • 1970-01-01
    • 1970-01-01
    • 2021-10-31
    • 2011-11-15
    • 2012-08-27
    相关资源
    最近更新 更多