首页 > 解决方案 > 如何加载新的 RecycleView?

问题描述

我需要帮助!我正在使用RecycleViewRetrofit 我的服务已经返回 aJSON并且我已经正确显示了所有内容。

但是当我点击任何项目时,我想recycleview用其他数据重新加载它。

用这些数据打开一个新的活动,或者开发一个例程来用来自其他服务的数据重新加载这个相同的回收视图,还有什么更好的呢?

如果第二好的解决方案是我该怎么做?

我想要做的是与下面完全相同的视频,但使用recycleview和retrofit,因为它是新组件。 https://www.youtube.com/watch?v=lvlhc_THCY8

public class TeleAdapter extends RecyclerView.Adapter<TeleAdapter.MyViewHolder> {

private List<Tele> Tele;
private Context context;

public TeleAdapter(List<Tele> Tele, Context context){
    this.Tele = Tele;
    this.context = context;
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.Tele_categoria_item, parent,false);
    return new MyViewHolder(view);
}

@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
    holder.Name.setText(Tele.get(position).getName());
    holder.Email.setText(Tele.get(position).getUrl());
    final String music = Tele.get(position).getUrl();


}

@Override
public int getItemCount() {
    try {
        return Tele.size();
    }
    catch(Exception ex) {
        ex.printStackTrace();
    }
    return Tele.size();
}


public class MyViewHolder extends RecyclerView.ViewHolder{

    TextView Name,Email;
    String music;
    public MyViewHolder(View itemView) {
        super(itemView);
        Name = (TextView)itemView.findViewById(R.id.name);
        Email = (TextView)itemView.findViewById(R.id.email);


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


            }
        });

    }
}
}

标签: javaandroidandroid-recyclerview

解决方案


只需将此方法添加到您的 TeleAdapter

public void setData(ArrayList<Tele> tele) {
    this.tele = tele;
    notifyDataSetChanged();
}

在获得新数据后调用类似这样的东西

yourInstanceOfTeleAdapter.setData(newTeleData)

PS:使用第一个大写字母作为变量名是非常糟糕的主意!请改用小写字母。

private List<Tele> tele;

推荐阅读