2

フラグメント アクティビティと を使用して、スワイプ タブ ビューを構築しようとしていますactionbar.tablistener。私は他の人のチュートリアルを参照して実行しましたが、非推奨のままであり、正常に実行できません。次に、AppComBatActivity に変更しましたが、動作しません。理由がわからないビューグループ エラーが表示されます。次に、ActionBarActivityに変更しましたが、最終的には機能しましたが、タブアクティビティをどのように編集しても、Javaクラスとxmlでも何も表示されません。 私も actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS)廃止しました

次のようにコードを添付しました...

fragmentmenu.class

public class FragmentMenu extends FragmentActivity implements ActionBar.TabListener {

    ActionBar actionBar;
    ViewPager viewPager;
    FragmentPageAdapter ft;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.fragment_menu);
        viewPager = (ViewPager)findViewById(R.id.pager);
        ft = new FragmentPageAdapter(getSupportFragmentManager());

        actionBar = getActionBar();
        viewPager.setAdapter(ft);
        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
        actionBar.addTab(actionBar.newTab().setText("Menu").setTabListener(this));
        actionBar.addTab(actionBar.newTab().setText("Report").setTabListener(this));
        actionBar.addTab(actionBar.newTab().setText("Setting").setTabListener(this));

    }


    @Override
    public void onTabSelected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {

    }

    @Override
    public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {

    }

    @Override
    public void onTabReselected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {

    }
}
</code>
FragmentPagerAdapter 
<code>
public class FragmentPageAdapter extends FragmentPagerAdapter {
    public FragmentPageAdapter(FragmentManager fm) {
        super(fm);
    }


    @Override
    public Fragment getItem(int position) {
        switch (position){
            case 0:
                return new MyActivity();
            case 1:
                return new Report();
            case 2:
                return new Setting();
        }
        return null;
    }

    @Override
    public int getCount() {
        return 3;
    }
}
</code>
One of the fragment
<code>
public class Report extends Fragment {

    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        return inflater.inflate(R.layout.report, container, false);
    }
}

}} 

助けてください!

4

1 に答える 1

4

ActionBar.Tablistenerは廃止されました。代わりにTabLayoutを使用する必要があります。

詳細については、このチュートリアルを確認してください: http://www.androidhive.info/2015/09/android-material-design-working-with-tabs/

于 2015-11-14T15:39:14.717 に答える