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

리스트뷰 아이템 한줄 지우기

0 추천
안녕하세요

 

제가 구현중인 리스트에는 현재 서버에 접속중인 사람들의 목록이 아이템입니다.

 

서로간의 귓속말 같은 것을 할 수 있는데요 (무전기)

자기가 자기 자신에게 귓속말을 할 수는 없는 노릇이고 그럴 필요도 없으니

 

리스트를 뿌릴 때

if (getItem(position).getDeviceId().equals(DeviceId 가져오는 메서드)) {

// 해당 Item Row는 remove 한다.

}

네 이겁니다

일단 리스트 전체의 DeviceId를 검사하여 단말의 DeviceId와 비교해

해당 Row는 삭제? 보이지 않게 ?

어떻게 하나요.. 알려주세요 ㅠ

 

remove item from listview?

 

감사합니다...
윤둥이 (4,560 포인트) 님이 2013년 6월 25일 질문

1개의 답변

+1 추천
 
채택된 답변

안녕하세요!

list 에서 원하시는 부분을 삭제 하실려고 하시는 것 같네요.

list.remove(posttion);

삭제를 아이템을 삭제하시고,

adapter.notifyDataSetChanged();

어댑터에 리스트가 바뀐걸 알리고, 리스트를 다시 그리시면 될 듯 합니다.

도움이 되시길 바랍니다!

 

 

안드로메다개발자 (8,830 포인트) 님이 2013년 6월 25일 답변
윤둥이님이 2013년 6월 25일 채택됨
이렇게 처리를 하는게 최선인듯한데요^^;
어떻게 돌아가는 루트는 아시겠나요 ? DeviceInfo 이것은 제가 임의적으로 넣은 것이며, 일단 리스트를 받아오는지 확인하시구요.. 현재 deviceId를 확인 하는지 iterator 돌고 나서의 list도 한번 확인해보시기 바랍니다!
한번 이거 돌려보고 싶네요^^ ㅎㅎㅎ
iterator 돌고나서 list는 이 전의 리스트와 같습니다

DeviceInfo는 물론 제가 정보를 얻어왔습니다..

근데 value에 저장된 값은 DeviceInfo List의 Item ID 같은게 들어있떠군요

06-25 16:25:39.802: E/PVT(19170): com.btb.pump.pvt.vo.DeviceInfo@42b52810
06-25 16:25:39.802: E/PVT(19170): com.btb.pump.pvt.vo.DeviceInfo@42b61418
06-25 16:25:39.802: E/PVT(19170): com.btb.pump.pvt.vo.DeviceInfo@42b3a5b8
06-25 16:25:39.802: E/PVT(19170): com.btb.pump.pvt.vo.DeviceInfo@42b62398
06-25 16:25:39.802: E/PVT(19170): com.btb.pump.pvt.vo.DeviceInfo@42ab7b48
06-25 16:25:39.802: E/PVT(19170): com.btb.pump.pvt.vo.DeviceInfo@42b61fc8
06-25 16:25:39.802: E/PVT(19170): com.btb.pump.pvt.vo.DeviceInfo@42b3c230
06-25 16:25:39.802: E/PVT(19170): com.btb.pump.pvt.vo.DeviceInfo@42b62ec8
06-25 16:25:39.802: E/PVT(19170): com.btb.pump.pvt.vo.DeviceInfo@42abde48
06-25 16:25:39.802: E/PVT(19170): com.btb.pump.pvt.vo.DeviceInfo@42b339e8
06-25 16:25:39.802: E/PVT(19170): com.btb.pump.pvt.vo.DeviceInfo@42b4e098
06-25 16:25:39.802: E/PVT(19170): com.btb.pump.pvt.vo.DeviceInfo@42ab8ff8
06-25 16:25:39.802: E/PVT(19170): com.btb.pump.pvt.vo.DeviceInfo@42ab9338
06-25 16:25:39.802: E/PVT(19170): com.btb.pump.pvt.vo.DeviceInfo@42b4db00
06-25 16:25:39.802: E/PVT(19170): com.btb.pump.pvt.vo.DeviceInfo@42b34160
06-25 16:25:39.802: E/PVT(19170): com.btb.pump.pvt.vo.DeviceInfo@42b34490


벨류를 로그로 찍으니.. ^^;

전 벨류에 DeviceInfo.getDeviceId가 들어가야 하는 상황인데..ㅎㅎ
궁금한게 있는데요..
talkerList.add(new DeviceInfo());
이 부분은 무엇을 하는 부분인가요 ? 리스트에 다시 추가 하시나요 ?
전역변수로
private ArrayList<DeviceInfo> takerList ;
선언해주시고,
talkerList = InfoStorage.getInstance().get(InfoStorage.FULL_TALKER_LIST);
String deviceId = takerList.getInstance().get(InfoStorage.DEVICE_ID);
for(Iterator<DeviceInfo> it = talkerList.iterator(); it.hasNext();) {
                         DeviceInfo value = it.next();
                         
                         if (value.equals(deviceId))
                             it.remove();
                     }
                     
                     mListView.setAdapter(new TalkerListAdapter(TalkerListActivity.this, R.layout.layout_talker_row, talkerList));
 이렇게 구성되는거 아닌지요^^
맞아요 ^^^^^^^
됐습니다

개발자님 말씀대로 해서 ㅎㅎ 제가 너무 못하나바여 ㅎㅎㅎ

어댑터에 넣기전에 지웠습니다.

for (Iterator<DeviceInfo> it = talkerList.iterator(); it.hasNext();) {
                        DeviceInfo value = it.next();

                        if (value.getDeviceId().equals(deviceId))
                            it.remove();
                    }

ㅎㅎ 감사합니다

밥사드릴께여 구로디지털단지로오세여..ㅠㅠ
해결하셨다니 다행이네요^^* 좋은 마음으로 퇴근할수있겠네요 ㅎ ㅎ
...