如何加载新的RecycleView?

时间:2018-10-25 19:45:52

标签: android recycle

我需要帮助!我在翻新中使用RecycleView,我的服务已经返回了JSON,并且我已经正确显示了所有内容。

但是,当我单击任何项​​目时,我想用其他数据重新加载此recycleview

用这些数据打开一个新活动或开发一个例程以使用来自其他服务的数据重新加载相同的recycleview更好呢?

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

我想做的是下面完全相同的视频,但是使用recycleview和翻新,因为它是新组件。 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) {


            }
        });

    }
}
}

2 个答案:

答案 0 :(得分:0)

您必须记住一些事情:

  1. 如果型号始终相同,则可以使用相同的适配器。如果不是,则需要同时创建两者并在RecyclerView中更改活动适配器。
  2. 如果您需要再次获得第一个列表,则应将信息分为不同的RecyclerView以使其变得容易。您可以根据应用程序流将它们分为不同的片段或活动。

希望有帮助。

答案 1 :(得分:0)

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

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

获取新数据后,调用类似这样的

yourInstanceOfTeleAdapter.setData(newTeleData)

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

private List<Tele> tele;