2016-09-17 3 views
0

Моя активность состоит из recyclerview, данные которых я устанавливаю при ответе вызова api. Я добавил код ниже в ответ на успешный вызов вызова api. Проблема в том, что i обновите список при нажатии на кнопку, тогда новый список отображается поверх старого списка. В результате, когда я нажимаю на элемент списка, различные действия открываются, поскольку событие также берется за списком за текущим списком. Почему это происходит? Я просто хочу, чтобы мой список обновлялся с новым списком при нажатии кнопки обновления. Как я могу это решить?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

прозрачных элементов адаптера. addAll new items -> notify – XxGoliathusxX

ответ

0

Вы можете инициализировать адаптер и назначить его recyclerView в 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(...); 
       } 
      })); 
Смежные вопросы