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

단일 선택 커스텀 리스트뷰에서 선택한 상태와 항목을 표시해주는 방법 [closed]

0 추천
팝업창(AlertDialog.Builder)에서 SetSingleChoiceItems의 첫번째 인자로 커스텀 어댑터를 사용해서, 이미지를  리스트뷰처럼 여러장 보여주고 그 중 하나를 선택하는 것을 구현했습니다. 커스텀 리스트뷰는 그냥 이미지뷰만 하나 있는 방식이구요.

 

구현은 원하던대로 됐는데, 선택됐다는 것을 사용자가 직관적으로 알 수 있도록 '눌린상태'라고 해야할지...선택된 상태를 보여주고 싶습니다. 커스텀 리스트뷰의 항목에 라디오 버튼을 추가해봤자 그룹으로 묶여있지 않아서 제각각 놀더라구요.

 

커스텀뷰의 단일 항목마다 생성된 라디오 버튼을 하나의 그룹으로 묶는 방법을 제시해주셔도 되고, 그 외에 다른 방법으로 선택됐음을 표시(단 반드시 하나만 선택되도록, 하나가 선택되면 동시에 기존의 다른 선택된 상태는 풀어줘야함)하는 방법도 좋습니다. 구체적인 방법이 아니라 구상이라도 해주시면 제가 찾아보도록 하겠습니다.

 

감사합니다.
질문을 종료한 이유: 문제해결
익명사용자 님이 2014년 8월 19일 질문
2014년 8월 19일 closed

2개의 답변

0 추천
 
채택된 답변
배경색변경정도로 괜찮다면 listSelector를 이용하는게 간단하겠네요
 
AlertDialog.Builder adb = new AlertDialog.Builder(this);
...
AlertDialog dlg = adb.create();
...
dlg.getListView().setSelector(R.drawable.list_selector);
dlg.show();

 

 

alkyne (22,960 포인트) 님이 2014년 8월 19일 답변
음...일단 당장은 안되는데 리스트 셀렉터 예제 좀 보고 이해하면 될 것 같네요. 답변 감사합니다.
그런데 제 경우에는 xml이 없이 빌더에서 제공해주는 뷰?를 그대로 사용하는건데 이 경우에도(xml 설정없이) 셀렉터가 적용가능한가요?
0 추천
저는 이럴 때 선택된 row만 저장하는 arraylist를 만들어요.

getView에서 표시하고 나서, 선택된 row의 배경을 바꿔주는 식으로 쓰고 있어요.
쎄미 (162,410 포인트) 님이 2014년 8월 19일 답변
온클릭 리스너를 어댑터 내부의 getView블록에 쓰는건가요? 아니면 실제로 어댑터를 사용하는 액티비티에서 쓰는건가요?
만약 액티비티에서 사용하는거라면 제가 항목(row)별로 설정조절하는 것을 어떻게 해야할지 모르겠네요...실제 xml 아이디를 가진 리스트뷰가 아니라(?) AlertDialog.Builder가 만들어준 거라서.
일단 제시해주신 방안과 관련된 내용을 좀 더 찾아보도록 하겠습니다. 답변 감사합니다.
get view에서 써야죠. 앞에 작업 다 하고 row 색깔만 바꿔주면 되니까요
...