button을 다시 눌렀을 경우 recyclerview 갱신 질문입니다.
조회수 2160회
button을 클릭했을 때 asynctask.execute()해서 url에서 json을 파싱한 걸 recyclerview에다가 보여줍니다. 총 5개의 버튼이 있고 버튼 한 개마다 recyclerview가 하나씩 있습니다. 여기서 그냥 버튼 한번 누르고 스크롤해서 계속 보여주는데는 문제가 없는데 스크롤을 했다가 다른 버튼을 누르면 스크롤이 되지 않고 처음에 보여주는 데이터만 보여줍니다. ㅜ adapter 갱신하는데에 문제가 있는 것 같은데 도와주세요 ㅜ
ladderbtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
RankingRecyclerViewItemList.clear();
adapter.notifyDataSetChanged();
KdaRankingrv.setVisibility(View.GONE);
rankingrv.setVisibility(View.VISIBLE);
new ladderAsyncTask().execute(url1);
}
});
killDeathbtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
RankingRecyclerViewItemList.clear();
adapter.notifyDataSetChanged();
rankingrv.setVisibility(View.GONE);
KdaRankingrv.setVisibility(View.VISIBLE);
new kdaAsyncTask().execute(url2);
}
});
이건 버튼을 클릭 했을 때 입니다.
adapter.notifyDataSetChanged();
rankingrv.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
visibleItemCount = rankingrv.getChildCount();
totalItemCount = linearLayoutManager.getItemCount();
firstVisibleItem = linearLayoutManager.findFirstVisibleItemPosition();
if (loading) {
if (totalItemCount > previousTotal) {
loading = false;
previousTotal = totalItemCount;
}
}
if (!loading && (totalItemCount - visibleItemCount)
<= (firstVisibleItem + visibleThreshold)) {
// End has been reached
Log.i("Yaeye!", "end called");
new ladderAsyncTask2().execute(url1);
// Do something
loading = true;
}
}
});
이건 asynctask에서 postexecute 안에서 스크롤이 밑으로 갔을 때를 구현한 것입니다.
댓글 입력