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

리스트뷰 질문입니다.. 어렵네요..

0 추천

이전에 질문을 올렸었지만 추가된 내용과 함꼐 다시 한번 질문합니다!

mysql에 있는 데이터를 jsp로 작성한 톰캣 서버를 통해 안드로이드로 보내고

리스트뷰에 출력해주고 있습니다.

정말 검색해서 나오는 모든 예제를 봤었고 그 중 이해가 가장 잘되고 간단해 보이는 방법을 이용해

리스트뷰에 출력을 했습니다.

많은 예제가 커스텀 어댑터 클래스를 따로 만들어서 그 안에서 데이터를 처리해주는 것 같던데

저는 따로 커스텀 어댑터와 Getter/ Setter 클래스를 만들지 않았습니다.

이런식으로 간략하게 작성되어 있는 예제를 보며 저의 앱에 맞게 수정하여 작성한 것입니다.

근데 문제가 생겼습니다.

1. 해당 리스트뷰의 아이템을 클릭 시, 화면 전환이 되도록 하여 전환된 액티비에

  클릭한 정보를 가져오고 싶습니다. 그러나 getter setter 가 없어서 원하는 데이터 전달이 안됩니다.

  intent를 이용해서 넘겨보려 했지만 할 수가 없습니다.. 아이템을 클릭했을 시,  제 코드에서 해당 아이템에   저장되어 있는 데이터를 전달할 수 있는 방법이 있을까요?

 

2. 이미지도 함께 리스트뷰에 저장하고 싶습니다. 이미지는 데이터베이스에 이미지 이름이 저장되어 있고

  이미지 자체는 서버에 저장되어 있어 url로 접속시 사진에 접근할 수 있습니다.

 

이런식으로 말이죠.. 근데 저 ooo부분에 해당 데이터에 속하는 사진을 넣어줘 뿌려주고 싶은데

제가 만든 코드로는 불가능할까요?

 

아니면 아예 커스텀 어댑터를 만들 수 있는 코드로 제가 만든 코드 자체를 바꾸어야 할까요?

(몇번 시도해 보았지만 실패했습니다.)

 

이상입니다. 몇일째 해메고 있습니다.. 스트레스 받아요...

도움과 조언 부탁드립니다..

섭구 (370 포인트) 님이 2018년 8월 21일 질문

1개의 답변

+1 추천
이전글 리플 링크로 안되던가요? 지금 어댑터 생성할때  인자값으로  이미지가 없으니 이미지 변수값이랑 뷰 추가후 나머지부분은  링크 따라하면 될것같은데요
idontknow (6,380 포인트) 님이 2018년 8월 21일 답변
해보니 안되더라고요.. 다시 한 번 해보겠습니다.
그리고 인텐트 값 전달은 우짜면 좋을까요..?
리스트뷰에   setOnItemClickListener  연결하시면 맴버변수로 view, position 값들이 제공되는데, .이걸사용하셔서  productlist.get(position)으로 해당position 의 리스트값을 인텐트로 보내면 될것같습니다. 도움이 되길바랍니당
감사합니다! 마지막 하나만 더 여쭤봐도 될까요?

리스트뷰 클릭 시,
Intent intent = new Intent(book.this, product.class);
                System.out.println(productList.get(position));
                intent.putExtra("code",productList.get(position));
                startActivity(intent);
이렇게 작성했습니다. 로그보면 보내려는 데이터 값이 {aaa = a, bbb =b, ...}
이런식으로 보내지는데 액티비티 전환 후 받는 곳에서는
Intent intent = getIntent();
        String text = intent.getExtras().getString("code");
        System.out.println(text);
로그보면 null값이 나옵니다. 왜 그럴까요..?
getSerializableExtra()를 써야 할것 같습니다. 보낼때의 데이터값이 단순 문자열이 아니고 리스트뷰의 각 행의 아이템 세트라서 직렬화시켜서 받아야 할것같습니다. 도움이 되었기를!
감사합니다 큰 도움이 되었습니다!  호오옥시 넘겨준 데이터중에 특정 데이터만 받아올 순 없나요?
인탠트로 받아온 데이터를 리스트나 맵 으로로 받아 필요한 데이터에만 접근해서 뽑아쓰는 형식말고는 딱히 생각나는 방법이 없네요ㅠㅠ저도 초보라... 보낼때나 받을때 둘중 한경우는 가공을 해서 사용해야 할텐데, 지금은 getter, setter가 있는 Model클래스가 따로 없으시니 보내는쪽에서는 안될거같습니다. 다른 고수님들의 도움이 필요한시점같네요! 화팅!
답변을 계속 해주셔서 감사합니다.
특정 문자열을 추출하는 함수를 사용하면 될 것 같습니다
이제 문제는 이미지를 출력하는 부분인데
서버에 있는 이미지의 url에 접속하여 디비에 있는 사진이름을
url 뒤에 붙혀주는 형식으로 하고싶은데..

전 질문에 링크 주셨던 부분을 보면 제 코드에 어떻게 적용시켜야 할 지 모르겠습니다..
어댑터 인자값중 string배열과 int배열에 이미지url값과 이미지뷰id값을 넣으시구 링크의 setViewBinder 메소드를 가져다 쓰심될것같은데요.
...