안녕하세요?
--------
protected void onPostExecute(final ArrayList<StockData> result) {
GroupAdapter adapter;
adapter = new GroupAdapter(getApplicationContext(), R.layout.list_group01, result);
ListView myList = (ListView)findViewById(R.id.stockListView);
myList.setAdapter(adapter);
GroupAdapter adapter;
adapter = new GroupAdapter(getApplicationContext(), R.layout.list_group01, result);
ListView myList = (ListView)findViewById(R.id.stockListView);
myList.setAdapter(adapter);
--------
코드의 일부분인데요.
이런식으로 커스텀 adapter를 만들어 주자나용.. 그렇다면 이 아답터에서나 myList에서 다시result이것을 빼오거나..
result의 특정 item만 Select 해올수는 없나요? 여기서는 바로 result를 컨트롤 하면되겠지만...
그냥 알고 싶어요 방법이 있는지 없는지..ㅠㅠ. ㄷㄷㄷ..
커스텀뷰가 아닌경우는 getItemIdAtPosition(arg2); 식으로 현재 클릭한 item의 데이터를 가져올수 있던데...
질문이 좀.. 어설프긴 한데.. 이해하신 고수님은 한말씀..^^
-- 아답타 내부에서 --
클릭되는 뷰(위젯)에 setTag(position) 을 하시고,
클릭이벤트 있는 곳에서 int position = (Integer)v.getTag(); 하시면 포지션(인덱스)을 가지고 올 수 있습니다.
커스텀 아답타에서는 생성자에서 파라미터로 넘어온 리스트를 전역변수(멤버변수)로 받아서 가지고 계시면 되구요.
-- 아답타를 사용하는 액티비티에서 --
커스텀 리스트를 부르는 액티비티에서도 OnItemClickListener 를 사용해서 할 수 있는데요.
onItemClick(AdapterView<?> parent, View v, int position, long id)
요 순서대로 넘어오므로 position이 클릭된 녀석의 포지션입니다.
액티비티에는 리스트가 있으므로, position을 사용해서 리스트에서 꺼내면 되구요,
아님 StockData sd = (StockData)parent.getAdapter().getItem(position); 이렇게도 사용할 수 있구요.
아님 position 대신에 아까 setTag로 저장해놨던 position 을 꺼내서 사용해도 되구요.
'Android > ListView' 카테고리의 다른 글
[Android] 리스트뷰 아이템 클릭 이벤트 - ListView Item Click (17) | 2011.07.13 |
---|---|
[Android] 커스텀 리스트뷰 : Custom ListView - Layout : 레이아웃 (37) | 2011.05.04 |
[Android Tip] 커스텀리스트뷰에서 getItemIdAtPosition 관련... (1) | 2011.05.02 |
[Android] ListView - 드래그 시 Background Color가 반전되는 현상 (0) | 2011.03.22 |
[Android] Custom ListView - 커스텀 리스트뷰 (9) | 2010.11.16 |
ListView 만들기 (0) | 2010.09.08 |
댓글을 달아 주세요
2012.03.09 20:44 댓글주소 수정/삭제 댓글쓰기
비밀댓글입니다