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

커스텀 리스트뷰 체크된 아이템 가져오기

0 추천

일반 리스트 뷰에서는

 

final ArrayList<String> items = new ArrayList<String>();
        final ArrayAdapter checkedAdapter = new ArrayAdapter(this, android.R.layout.simple_list_item_single_choice, items);

이렇게 선언한뒤

 

listview.getCheckedItemPosition();

이렇게 가져왔는데요

 

 

커스텀뷰에서는 어떻게 체크된 아이템을 가져와야하나요??

 

제가 만들고있는 커스텀리스트뷰에서는

 

adapter = new ListViewAdapter();
listview.setAdapter(adapter);

adapter.addItem(매개변수1, 매개변수2, 매개변수3, 매개변수4);

 

이렇게 아이템을 뿌려주는데요

android.R.layout.simple_list_item_single_choice 이부분을 어떻게 해결해야 할지 모르겠습니다...

xcode (460 포인트) 님이 2017년 1월 17일 질문

2개의 답변

+1 추천
매개변수가 단순 변수가 아닌 isSelected 라는 boolean 변수를 가진 아이템 클래스로 만들고, 리스트뷰에서 선택할 때마다 adapter의 해당 position에 해당하는 아이템의 isSelected를 토글시키면 됩니다.
쎄미 (162,410 포인트) 님이 2017년 1월 17일 답변
이해가 안가는것이....

public class IsSelected {
    private static boolean b_selected = false;

    public void isSelect(){
        if(b_selected == false) {
            b_selected = true;
        }
        else {
            b_selected = false;
        }
    }

}

이렇게 만들었는데요 이것을 매개변수에 넣으시라는게 무슨뜻인지,, ㅠㅠ
클래스를 매개변수로 쓸 수 있나요?

말씀은 잘하신거 같은데 제가 이해를 못하겠네요 조금만 자세히 설명해주시면 감사하겠습니다.
어댑터에 들어가는 items가 String이 아닌 클래스를 따로 만들고, 거기에 isSelected 라는 변수를 추가하세요.

그리고
public void isSelect(){
  b_selected =  !b_selected;
}

이렇게 쓰면 더 짧아 집니다.
0 추천
제가 예전에 비슷한 기능 만들 때 참고한 블로그입니다.

http://recipes4dev.tistory.com/68

시간이 많이 없어서 완벽하게 이해는 못하고 블로그에서 가져다 쓴 터라 설명은 해드리기 힘드네요.
덕이 님이 2017년 3월 14일 답변
...