ActionBar値addTabのヒント

1202 ワード

今日のテストで偶然、プログラムにaddTabがあると、最初のtabのonTabSelectedイベントメソッドがデフォルトでトリガーされることがわかりました.
        ActionBar actionBar = mActivity.getSupportActionBar();
        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

        // Tab  
        MyTabListener listener = new MyTabListener();
        //   Tab  
        actionBar.addTab(actionBar.newTab()
                .setText(mActivity.getString(R.string.tab_index))
                .setTabListener(listener));
        actionBar.addTab(actionBar.newTab()
                .setText(mActivity.getString(R.string.tab_latest))
                .setTabListener(listener));
        actionBar.addTab(actionBar.newTab()
                .setText(mActivity.getString(R.string.tab_hot))
                .setTabListener(listener));
        actionBar.addTab(actionBar.newTab()
                .setText(mActivity.getString(R.string.tab_tag))
                .setTabListener(listener));

この問題を発見したのは、私が奇妙な順序の問題に遭遇したからです.
Tabを追加した後に各tabが開いているViewPagerコードに対応しているので、そのたびにviewPagerにnull空のポインタ操作を要求され、私は長い間気がふさいでいた.ビューオブジェクトが存在するのに空だったが、addTabの時に最初のtabのonTabSelectedイベントがデフォルトで実行されていたことに気づいた.
だからaddTabの前にそれに関連する他のコードを書かなければなりません.