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

안드로이드 커스텀 리스트뷰 질문이요!

0 추천

제가 리스트뷰를 만들어서 이미지 버튼을 사용하는데 이미지를 glide를 사용해서 이미지를 받아오고 그 버튼을 눌렀을때 정보를 받아오고 띄우는 창을 만들려고 하는데요 원래는 saveTag라는 클래스를 하나 만들어서 그걸로 position값을 받아와서 클릭 이벤트를 사용했는데요 glide를 사용하니까 tag클래스 오류가뜨면서 안되더라고요

그래서 제가 getView부분에서 

public View getView(int position,View convertview,ViewGroup parent){

pos=position이런식으로 변수에 position을 넣어서

OnClickListener photoClick = new OnClickListener() {
    public void onClick(View v){
        switch (v.getId()){
            case R.id.photo:
                AdminID="";
                sendObject(getItem(pos).getValueId());
                AdminID=getItem(pos).getValueId();
이런식으로 하면 될거 같다는 생각을 해서 사용했는데 position값이 
마지막에 만들어진 리스트뷰에 위치값만 저장이 되더라고요 Tag로 
저장하는 방식말고 눌린 위치에 대한 position값을 얻어오는 방법좀 알려주세요 ㅜㅜ
(제가 아직 많이 미숙해서 쫌만 풀어서 알려주셨으면 감사합니다)
너무먼개발자 (1,300 포인트) 님이 2018년 12월 6일 질문

2개의 답변

0 추천
listview.onitemclicklistener 확인해보세요
평범 (3,560 포인트) 님이 2018년 12월 6일 답변
흠... onItem말고는 없나요?
0 추천
클릭리스너를 리스트뷰가 있는 액티비티나 프레그먼트에서 저렇게 바로 붙이면

어댑터가 마지막으로 불러온 아이템의 포지션밖에 못가져 옵니다.

 

리스트뷰나 리사이클러뷰의 아이템에 붙는 클릭 리스너는 어댑터 내부에서 구현되어야 합니다.

또한 액티비티나 프레그먼트에서는 아이템 클릭 리스너나 아이템 터치리스너를 붙여줘야 하구요.

그래야 리스트뷰의 목록을 눌렀을때 해당 아이템에서 원하는 값을 바로 가져옵니다.
커피콩 (3,640 포인트) 님이 2018년 12월 8일 답변
...