안드로이드 Fragment질문드립니다.

조회수 739회

Volley와 gson을 써서 데이터를 받아옵니다. 받아온 데이터를 메인액티비티에서 ViewPager를 담고 있는 Fragment로 데이터를 전달하고 싶은데 Viewpager Fragment에 Budle로 데이터를 담아서 Viewpager Fragment가 OnCreateView되는 시점에 getArgument로 받는데 자꾸 nullpoint에러가 나네요.... 왜그런걸까요?

public void processRespons(String response) {
    Gson gson = new Gson();

    ResponseInfo info = gson.fromJson(response, ResponseInfo.class);
    MovieList movieList = gson.fromJson(response, MovieList.class);
    if (info.code == 200) {
        MovieInfo movieInfo = movieList.result.get(1);
        String title = movieInfo.title;
        Bundle bundle = new Bundle();
        bundle.putString("title", title);

        ViewPager1 viewPager = new ViewPager1();
        viewPager.setArguments(bundle);

    }
}


public View onCreateView(@NonNull final LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    rootView = (ViewGroup) inflater.inflate(R.layout.view_pager1, container, false);

    Button button = rootView.findViewById(R.id.viewpager1_button);
    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            Bundle bundle = getArguments();
            String title = bundle.getString("title");

            TextView text = rootView.findViewById(R.id.viewpager1_title);
            text.setText(title);


        }
    });
  • (•́ ✖ •̀)
    알 수 없는 사용자
  • 데이터를 받아온 후 Fragment 에 넘기고, 받는 코드 부분을 간략히 첨부해주시면 좋을것 같습니다 알 수 없는 사용자 2018.7.20 20:22
  • 다시 수정했습니다 질문!! 알 수 없는 사용자 2018.7.20 20:31

1 답변

  • ViewPager1 viewPager = new ViewPager1();
    viewPager.setArguments(bundle);
    

    여기서 fragment 객체를 새로 만들고 setArguments 만 하고 끝나는건가요? setArguments 를 하더라도 ViewPager 에 바인딩 된 fragment 객체에 넣어줘야 할것 같은데요.. 저 상황의 두줄의 코드만 보면 아무런 의미없는 코드 인것 같습니다

    Fragment 갯수가 정해져 있다면 해당 fragment 로 값을 보내어 직접 갱신하도록 하거나 애초에 fragment 에서 http 요청을 하는것도 방법입니다. fragment adapter 의 notifyDataSetChanged() 에 대응 해서 구현하는 방법도 있구요. 전체 흐름을 몰라서 자세한 조언을 드리기는 좀 어렵네요 ㅠ

    • (•́ ✖ •̀)
      알 수 없는 사용자
    • 아예 viewpager fragment에서 http요청을 보내 data를 받아와서 처리하도록 하였습니다 ㅠㅠ 알 수 없는 사용자 2018.7.21 11:37

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)