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

안드로이드 리스트 관련 질문입니다

0 추천
리스트를 디비에서 받아와서 뿌리는데
리스트 첫번째 인덱스에는
제가 다른 어떤 고정적인 값을 넣고싶어요 어떻게하면 좋을까요?
 
case NotiEvent.REQ_FULL_TALKER_LIST:
if (msg.arg1 == Const.OK) {
talkerList = (List<DeviceInfo>)Infos.get(Infos.FULL_TALKER_LIST);
talkerList.
 
String deviceId = (String)Infos.get(Infos.DEVICE_ID);
for (Iterator<DeviceInfo> it = talkerList.iterator() ; it.hasNext() ;) {
DeviceInfo value = it.next();
if (value.getDeviceId().equals(deviceId)) {
it.remove();
break;
}
}
 
// ArrayAdapter 연결
       mListView.setAdapter(new TalkerListAdapter(TalkerListActivity.this, R.layout.layout_talker_list_row, talkerList, serviceAgent));
 
이부분이 리스트 엑티비티에서 리스트 어뎁터 연결하는 부분이구요
 
이터레이터는 접속자 목록중에 자기 자신을 제외시키는 코드입니다..
 
자기자신을 지우고 리스트 제일 상단에다가 표시할라고 하는데요.. 흠..
 
안드로이드 주소록 들어가면 제일 상단에 자신이 있는 것 처럼요..
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
 
제가 iterator 함수가 끝난 후에 list.add(0, DeviceInfo); 로 빈 아이템을 하나 넣었어요
 
그리고 실행을 하니까 사이즈가 1개 더 늘었더군요
 
그런데 이게 이제 listAdapter에서 각 position을 찾아 ui를 설정해주는데 거기서 outbound exception이 발생합니다..
 
도와주세요 ㅎㅎ ㅠㅠㅠ

 

윤둥이 (4,560 포인트) 님이 2013년 8월 7일 질문
윤둥이님이 2013년 8월 7일 수정

1개의 답변

+1 추천
 
채택된 답변
리스트뷰에 제일 위에 추가하는건 리스트뷰 메소드인 addHeaderView 이걸 사용하시는게 좋을듯합니다. 근데 저거 사용해보기로 예전에 OnitemClickListener에서인가 포지션값이 한칸씩 밀렸던걸로 기억합니다. 이것만 주의해서 사용하시면 될듯합니다.
congbab (5,140 포인트) 님이 2013년 8월 8일 답변
윤둥이님이 2013년 8월 8일 채택됨
너무너무 감사합니다 ㅠㅠㅠ
죄송하지만 한가지 더 여쭤봐도 될까요?..

listActivity 에서 말씀해주신데로 listview.addHeaderView 를 추가해주었습니다.. 그래서 맨 위에 생기긴 했는데요

row ui를 adapter 에서 설정해주는데

제가 position == 0 일 때 헤더뷰 부분이라 생각해
그 부분의 UI를 꾸밀라고 했더니
널포인터익셉션이나고
headerViewListAdpater 에 관한 로그가 뜨는데

어뎁터를 따로 만들어줘야하나요?ㅠ
...