2016-09-20 3 views
1

11個のセットを持つタブレイアウトを持っていますか?私はタブレイアウトから既存のアイテムを削除する必要があり、選択されたアイテムのみを表示する必要があります。たとえば、11.Belowではなく、選択したアイテムを(str) "String [] str = selectedCategories; "私が今行う必要があるのは、Str.Howのアイテムでtablayoutを設定する必要があることです。これを達成できますか?以下はタブレイアウトに文字列配列を追加し、アンドロイドのタブレイアウトにある既存のアイテムを削除する方法

viewPagerAdapter = new ViewPagerAdapter(getSupportFragmentManager()); 
viewPager.setAdapter(viewPagerAdapter); 
tabLayout.setupWithViewPager(viewPager); 

viewpagerAdapterコード

public class ViewPagerAdapter extends FragmentPagerAdapter { 

    public ViewPagerAdapter(FragmentManager fm) { 
     super(fm); 
    } 


    @Override 
    public Fragment getItem(int position) { 
     Fragment fragment = null; 
     if (position == 0) { 
      fragment = new FashionFragment(); 
     } else if (position == 1) { 
      fragment = new JewelFragment(); 
     } else if (position == 2) { 
      fragment = new RestaurantFragment(); 
     } else if (position == 3) { 
      fragment = new SuperMarketFragment(); 
     } else if (position == 4) { 
      fragment = new HomeApplianceFragment(); 
     } else if (position == 5) { 
      fragment = new MobileStoreFragment(); 
     } else if (position == 6) { 
      fragment = new MotorFragment(); 
     } else if (position == 7) { 
      fragment = new ConstructionElectricalFragment(); 
     } else if (position == 8) { 
      fragment = new SalonFragment(); 
     } else if (position == 9) { 
      fragment = new BakeryFragment(); 
     } 
     else if (position == 10) { 
      fragment = new OtherFragment(); 
     } 

     return fragment; 
    } 

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


    @Override 
    public CharSequence getPageTitle(int position) { 
     String title = null; 
     if (position == 0) { 
      title = "Fashion"; 
     } else if (position == 1) { 
      title = "Jewellery"; 
     } else if (position == 2) { 
      title = "Restaurant"; 
     } else if (position == 3) { 
      title = "Super Market"; 
     } else if (position == 4) { 
      title = "Home Appliance"; 
     } else if (position == 5) { 
      title = "Mobile & Computer accessories"; 
     } else if (position == 6) { 
      title = "Motors"; 
     } else if (position == 7) { 
      title = "Construction & Electricals"; 
     } else if (position == 8) { 
      title = "Saloon & Spa"; 
     } else if (position == 9) { 
      title = "Bakkery & Sweets"; 
     } 
     else if (position == 10) { 
      title = "Others"; 
     } 
     return title; 

    } 
} 
+0

ViewPagerAdapterのコードを投稿してください –

+0

@Aman Jain ..今すぐ追加されました。親切にチェックしてください。 –

答えて

0

は、私はあなたのviewpagerにおけるフラグメントの数は 静的ではないとして代わりに FragmentPagerAdapterFragmentStatePagerAdapterを使用するためにあなたを示唆しているとの数が多いです断片ページ。

フラグメントとその名前のリストをViewPagerAdapterのコンストラクタに渡す必要があります。フラグメントを追加または削除する場合は、リストからフラグメントを削除または追加してアダプタに通知するだけです。

public class ViewPagerAdapter extends FragmentPagerAdapter { 

private ArrayList<Fragment> fragmentList = new ArrayList<Fragment>(); 
private ArrayList<String> fragmentName; 
public ViewPagerAdapter(FragmentManager fm, ArrayList<String> name, ArrayList<Fragment> list) { 
    super(fm); 
    this.fragmentList = list; 
    this.fragmentName = name; 
} 


@Override 
public Fragment getItem(int position) { 
    return fragmentList.get(position); 

} 

@Override 
public int getCount() { 
    return fragmentList.size(); 
} 


@Override 
public CharSequence getPageTitle(int position) { 
    return fragmentName.get(position); 

} 
public void addTab(Fragment fragment, String name) { 

     fragmentList.add(fragment); 
     fragmentName.add(name); 

} 

public void removeTab(int position) { 
    fragmentList.remove(position); 
    fragmentName.remove(position); 
} 
} 

ArrayList<Fragment> fragmentList; 
fragmentList = new ArrayList<Fragment>(); 
fragmentList.add(new Fashion()); 
fragmentList.add(new Jewellery()); 
fragmentList.add(new Restaurent()); 
..... 

ArrayList<String> name; 
name = new ArrayList<String>() { 
     { 
      add("Fashion"); 
      add("Jewellery"); 
      add("Restaurent"); 
      ..... 

     } 
    }; 

初期ViewPager

viewPagerAdapter = new ViewPagerAdapter(getSupportFragmentManager(),name,fragmentList); 
viewPager.setAdapter(viewPagerAdapter); 
tabLayout.setupWithViewPager(viewPager); 

viewPagerAdapter.addTab(new Motors(),"Motors"); 
viewPagerAdapter.notifyDataSetChanged(); 

フラグメントを追加フラグメントに

を削除します
関連する問題