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

(Fragment) bundle을 이용한 drawable(imageVIew) 정보 값 넘기기

0 추천

현재 리스트뷰를 사용하고 add를 통해 리스트뷰에 값들을 넣었습니다.

매겨변수로 넘겨준 값들은 Drawable과 String인데요

리스트뷰를 클릭시 A fragment에서 B fragment로 사진값과 String값들을 넘겨주려고 합니다.

String이야 bundle.putString으로 넘겨주면 되는데 Drawable같은 경우에는 넘겨줄 수 있는 방법이 없네요...

혹시 bundle을 통해 fragment간에 drawable이나 imageview정보를 넘겨줄 수 있는 방법이 있을까요...?

참고용으로 밑에 코드를 올립니다! 안드로이드 고수님들 부탁드립니다 ㅠ

 

 

A fragment

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView parent, View view, int position, long id) {
                MenuListViewItem item = (MenuListViewItem) parent.getItemAtPosition(position);

                Drawable menuImage = item.getMenuImage();
                String menuName = item.getMenuName();
                String menuPrice = item.getMenuPrice();

                OrderFragment orderFragment = new OrderFragment();
                Bundle bundle = new Bundle();
                bundle.putString("menuImage", String.valueOf(menuImage));
                bundle.putString("menuName", menuName);
                bundle.putString("menuPrice", menuPrice);
                orderFragment.setArguments(bundle);
                FragmentManager manager1 = getFragmentManager();
                manager1.beginTransaction().replace(R.id.content, orderFragment).commit();

            }
        });

 

B Fragment

ImageView orderImage = v.findViewById(R.id.orderImage);
        TextView orderName = v.findViewById(R.id.orderName);
        TextView orderPrice = v.findViewById(R.id.orderPrice);

        String menuImage = getArguments().getString("menuImage");
        String menuName = getArguments().getString("menuName");
        String menuPrice = getArguments().getString("menuPrice");

        orderImage.setImageResource(Integer.parseInt(menuImage));
        orderName.setText(menuName);
        orderPrice.setText(menuPrice);

 

도꿀꿀 (510 포인트) 님이 2018년 5월 15일 질문

2개의 답변

+1 추천
https://stackoverflow.com/questions/10070974/how-to-pass-drawable-using-parcelable

 

parcelable을 활용해서 drawable을 bitmap으로 바꿔주고 받는 식의 방법이있네요

한번 시도해보시는 것도 좋을 것 같아요
익명사용자 님이 2018년 5월 15일 답변
감사합니다!! 물론 저 방식대로 하지는 않았지만 큰 힌트를 얻고 해결했습니다!!

그저 간단히 bitmap으로 변환하고 putParcelable로 넘기면 되는거였습니다.
아직 공부가 많이 부족한거 같네요...!

혹시 저말고도 고민하시는분이 있을까봐 참고한 사이트 링크 걸어드립니다.
https://stackoverflow.com/questions/4352172/how-do-you-pass-images-bitmaps-between-android-activities-using-bundles
0 추천
리스트에 넣은 Drawable 과 string 은 값이 어디에서 왔나요...

리스트에서 값을 뽑아서 번들로 어렵게 넘기지 말고

인덱스라든가 위치라든가 이런 정보를 넘기는게 좋지 않을까요..

구조를 다시 한번 생각해 보심이 어떨지요
익명사용자 님이 2018년 5월 15일 답변
...