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

2중 ViewPager 에서 오류가 뜹니다.

0 추천

계속 오류메시지가 

    java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v4.view.ViewPager.setAdapter(android.support.v4.view.PagerAdapter)' on a null object reference

 

이렇게 되어있습니다. 

외부가 A 고 내부가 B라고 하면 메인 자바 파일에서 A ViewPager 선언하고 Adapter 까지 다 했습니다. 여기까지는 되는데 2중으로 만들려고 A.xml 파일에서 ViewPager 위젯 생성해놓고 A 자바 파일 onCreateView 안데다가 

final ViewPager inner =(ViewPager)this.getActivity().findViewById(R.id.pager1);
inner.setAdapter(new inner(getChildFragmentManager(),2));

이렇게 했는데 계속 inner.setAdapter 쪽에서 오류가 뜹니다. 

inner 클래스는 

public class inner extends FragmentPagerAdapter {

    int tabCount;

    public inner(FragmentManager fm, int numberOfTabs) {
        super(fm);
        this.tabCount = numberOfTabs;
    }

    @Override
    public Fragment getItem(int position) {

        switch (position) {
            case 0:
                Fragment1 tab1 = new Fragment1();
                return tab1;
            case 1:
                Fragment2 tab2 = new Fragment2();
                return tab2;
            default:
                return null;
        }
    }

    @Override
    public int getCount() {
        return tabCount;
    }
}


이렇게 됩니다. 외부 ViewPager 선언했을때랑 똑같은 방법으로 했는데 왜 오류가 뜨는거죠? 

 

 

기객 (3,600 포인트) 님이 2017년 2월 12일 질문

1개의 답변

0 추천
 
채택된 답변

자답 

해당 프래그먼트 안에 onCreateView 에서 

LinearLayout layout=(LinearLayout)inflater.inflate(R.layout.fragment_tab1,container,false);

으로 지정하고 return 값 layout 하고 

위젯 객체지정할때 layout.findViewById 로 들어가서 연결해야함 

어휴 뻘짓했네

기객 (3,600 포인트) 님이 2017년 2월 12일 답변
...