1

誰かがこの問題を解決するのを手伝ってくれるかどうか知りたかった. ボタンのセットアップがあり、クリックすると、別のビューページャーページに移動するはずです。しかし、クリックするたびに、アプリがクラッシュし、fragmenttab2 クラスの onClick でエラーが返されます。これが私の主な活動です。

public class MainActivity extends SherlockFragmentActivity {

ViewPager viewPager;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    viewPager = (ViewPager) findViewById(R.id.pager);
    viewPager.setAdapter(new ViewPagerAdapter(getSupportFragmentManager()));
    viewPager.setCurrentItem(1);
    }
}

onClick を含むフラグメントは次のとおりです。

public class FragmentTab1 extends SherlockFragment {

ViewPager viewPager;

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    Activity activity = getActivity();

    if (activity != null) {       
        addListenerOnButton();      
    }

}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragmenttab1, container, false);  
    return view;
}

public void addListenerOnButton() {

    Button nextfrag = (Button) getView().findViewById(R.id.btn_nextfrag);
    nextfrag.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            ((ViewPager) viewPager.findViewById(R.id.pager)).setCurrentItem(1); 
        }
    });
}

}

ログ:

E/AndroidRuntime java.lang.NullPointerException
E/AndroidRuntime com.test.seriessample.FragmentTab1$1.onClick(FragmentTab1.java:58)
4

1 に答える 1

4

あなたのviewPagerはおそらくnull. また、viewPager 自体が ViewPager であり、onClickでその ViewPager 内の別のViewPager を検索しますが、これは正しくないようです。

編集:

アクティビティにこのようなものを追加する必要があります

public ViewPager getPager() {
    return viewPager;
}

そして、フラグメントの onClick で

((MainActivity) getActivity()).getPager().setCurrentItem(1);
于 2013-09-06T13:36:00.617 に答える