2016-09-17 28 views
0

我的活动包括recyclerview,其数据我设置为api调用的响应。我在api调用的成功响应中添加了以下代码。问题是当我点击一个按钮刷新列表,然后新的列表显示在旧列表顶部。结果当我点击列表项目时,多个活动打开,因为事件也是由当前列表后面的列表拍摄的。为什么会发生这种情况?我只想让我的列表在点击刷新按钮时刷新新列表。如何解决这个问题?Recyclerview刷新列表显示在旧列表顶部的新列表

@Override 
    public void onSuccess(ResponseData responseString) { 
    mAdapter = new RowAapter(responseString.getdatd(), mContext); 
    mList.setAdapter(mAdapter); 
    mAdapter.notifyDataSetChanged(); 
    mList.addOnItemTouchListener(new RecyclerItemClickListener(mContext, new RecyclerItemClickListener.OnItemClickListener() { 
         @Override 
         public void onItemClick(View view, int position) { 

          startActivity(...); 
         } 
        })); 
+0

明确适配器项目分配给recyclerView。添加所有新项目 - >通知 – XxGoliathusxX

回答

0

可以初始化适配器并在OnCreate

private List<ResponseData> responseData = new ArrayList<>(); 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_detail2); 
    mAdapter = new RowAapter(responseData , mContext); 
    recyclerView = ((RecyclerView)rootView.findViewById(R.id.recyclerView)); 
    LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity()); 
    layoutManager.setOrientation(LinearLayoutManager.VERTICAL); 
    recyclerView.setLayoutManager(layoutManager); 
    recyclerView.setAdapter(mAdapter); 
} 

@Override 
public void onSuccess(ResponseData responseString) { 
    responseData.addAll(responseString.getdatd()); 
    mAdapter.notifyDataSetChanged(); 
    mList.addOnItemTouchListener(new RecyclerItemClickListener(mContext, new  RecyclerItemClickListener.OnItemClickListener() { 
       @Override 
       public void onItemClick(View view, int position) { 

        startActivity(...); 
       } 
      }));