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

Activity에서 Fragment로 데이터 전달 문제 [closed]

0 추천

Fragment 화면을 부모창으로 하여 팝업형태로 ListView를 구현한 Activity를 만들었습니다.

Activity에서 선택된 ID값을 Fragment로 넘기고자 하는데

Activity에서는 분명 값이 넘어가는 것을 확인 했는데 Fragment에서 받지를 못하는거 같습니다.

[Activity]

EditSavePhotoFragment espf = new EditSavePhotoFragment();
Bundle bundle = new Bundle();
bundle.putString("cateID_out", String.valueOf(sb.toString()));
espf.setArguments(bundle);

Log.d(TAG, "넘기는 값 : " + bundle);

넘기는 값 : Bundle[{cateID_out=2}] 로 나옵니다.

 

[Fragment]

Bundle bundle = getArguments();
if (bundle != null) {
    String categoryNumber = bundle.getString("cateID_out");
    Log.d(TAG, "받은 값 : " + String.valueOf(categoryNumber));

    if (categoryNumber != null) {
        cateID = (TextView) getActivity().findViewById(R.id.cateID);
        cateID.setText(categoryNumber);
    } else {
        Log.d(TAG, "값이 넘어오지 않음. NULL!!!!");
    }
}

받은 값 : null 로 나옵니다.

 

아직 초보라 여러면에서 부족합니다.

고수님들의 도움 부탁 드려요...ㅠㅠ

 

질문을 종료한 이유: 방법을 찾았습니다. startActivityFroResult방법으로는 도저히 처리되지 않아 Singleton 으로 값을 임시 저장하여 받았습니다.
dexx (140 포인트) 님이 2015년 9월 16일 질문
dexx님이 2015년 10월 12일 closed

1개의 답변

0 추천

기존 Fragment가 있고 거기서 새로 Activity를 만들어서 해당 Activity안에 ListView에서 선택한 어떤 값을 Fragment로 돌려주려고 하는거군요.

즉 Fragment는 이미 존재하는 오브젝트인데 Activity에서는 new EditSavePhotoFragment();로 새로 Fragment 오브젝트를 만들어서 거기에 setArgument를 하고 있네요. 당연히 기존 객체에서 그것을 가지고 올수 있을리가 없겠죠.

원하시는 작업을 하기 위해서는 startActivityForResult 를 찾아보시기 바랍니다. 

회색 (21,340 포인트) 님이 2015년 9월 17일 답변
...