마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

GridView로 10개 더받기 만드는중입니다만...

0 추천
시작시 10개로 받아져있는상태로 시작하고...

getView의 position이 현재 count 와 같아지면 10개를 더 가져오는 형식으로 만들었는데요.

10개를 가져오는건 잘되는데 받아올때 자꾸 최상단으로 스크롤이 올라가네요...

방지해보려고 grid.setSelection(pos); 으로 마지막포지션으로 이동시키라고 하면

아까위에서 처리해둔거 때문에 죄다 불러와버리네요...위 문제점의 방법 좀 없을까요...?ㅜㅜ
아직도초보 (3,030 포인트) 님이 2013년 8월 19일 질문

1개의 답변

0 추천
 
채택된 답변
새로운 데이터를 받아온다음 setAdapter를 새로 하지 마시고

새로운 데이터를 기존의 리스트에 add시킨다음 notifyDataSetChanged()를 호출해주세요
Gradler (109,780 포인트) 님이 2013년 8월 20일 답변
아직도초보님이 2013년 8월 20일 채택됨
setAdapter 를 안하고서,,,
다시받게끔 add시켜주고 notifyDataSetChanged 시켜줬는데
왜 새로고침이 안될까요?ㅜㅜ
데이터를 새로 받으시면서 리스트를 new 로 초기화 시키시면 안됩니다.
혹시 그렇게 하신건 아닌가요?
흠 아닌데...ㅠㅠ
디테일한 순서가...
다시받을때
add ---> listAdapter.count = App.arrlist2.size(); ---> listAdapter.notifyDataSetChanged();
순서입니다...
하나걸리는건 ArrayList가 static형태인데 그건 상관없겠죠...?
해결했습니다 ㅠㅠ
new 로 초기화 해주면 안되는것이 찝찝해서 확인해보니
onResume() 안에서 계속 초기화 해주고 있었습니다 ㅠㅠ
감사합니다!
변수명은 신경쓰지마시고 대충 이런 프로세스로 하고 계신것 맞는지요?
arrList = new ArrayList();
GridView gridView = new GridView(this);
ListAdapter listAdapter = new ListAdapter();
gridView.setAdpater(listAdapter);

getData();
adapter.notifyDataSetChanged(); // 그리드뷰에 붙인 아답터에 리스트 아이템의 변화가 있다는것을 알려줌

void getData() {
    // 서버로부터 데이터를 가져와서 리스트에 add시켜줌
   arrList.add(Object);
}

더보기 버튼 누를 경우
getData();
adapter.notifyDataSetChanged(); // 그리드뷰에 붙인 아답터에 데이터 변화가 있다는것을 알려줌
네 맞아요 ㅠㅠ 코딩까지 써주시고 감사합니다 ㅠㅠ ^. ^/
...