首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何加载新的RecycleView?

如何加载新的RecycleView?
EN

Stack Overflow用户
提问于 2018-10-26 03:45:52
回答 2查看 34关注 0票数 1

我需要帮助!我正在使用带有Retrofit的RecycleView,我的服务已经返回了一个JSON,并且我已经正确地显示了所有内容。

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

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

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

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

代码语言:javascript
复制
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) {


            }
        });

    }
}
}
EN

回答 2

Stack Overflow用户

发布于 2018-10-26 03:58:23

你必须记住一些事情:

  1. 如果模型始终相同,则可以使用相同的适配器。如果不是,您需要创建两者并更改RecyclerView.
  2. If中的活动适配器,您需要再次获得第一个列表,您应该在不同的RecyclerView中拆分信息以使这一点变得简单。根据应用流程的不同,可以在不同的片段或活动中。

希望能有所帮助。

票数 0
EN

Stack Overflow用户

发布于 2018-10-26 04:02:27

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

代码语言:javascript
复制
public void setData(ArrayList<Tele> tele) {
    this.tele = tele;
    notifyDataSetChanged();
}

在获得新数据后,调用类似下面这样的代码

代码语言:javascript
复制
yourInstanceOfTeleAdapter.setData(newTeleData)

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

代码语言:javascript
复制
private List<Tele> tele;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52996970

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档