안드로이드에서 끝이 없는 리스트를 만들고싶어요.
조회수 2305회
1 답변
-
OnScrollListener를 구현하는 방법이 있는데요.
public class Test extends ListActivity implements OnScrollListener { Aleph0 adapter = new Aleph0(); protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setListAdapter(adapter); getListView().setOnScrollListener(this); } public void onScroll(AbsListView view, int firstVisible, int visibleCount, int totalCount) { boolean loadMore = /* 패딩을 넣을지 */ firstVisible + visibleCount >= totalCount; if(loadMore) { adapter.count += visibleCount; adapter.notifyDataSetChanged(); } } public void onScrollStateChanged(AbsListView v, int s) { } class Aleph0 extends BaseAdapter { int count = 40; /* 처음 보이는 항목의 수 */ public int getCount() { return count; } public Object getItem(int pos) { return pos; } public long getItemId(int pos) { return pos; } public View getView(int pos, View v, ViewGroup p) { TextView view = new TextView(Test.this); view.setText("entry " + pos); return view; } } }
ListActivity는 처음에 항목을 40개만 보여주고 유저가 스크롤해서 끝에 도달하면 항목을 추가해줍니다. 만약에 이런 항목들이 웹 데이터를 가져오는것처럼 오래걸리는거라면 쓰레드를 분리해서 사용해야합니다.
댓글 입력