2017-07-04 16 views
-3

これは私のtabhostアクティビティです。アクションバーで各フラグメントタイトルを設定したいと思います。私のタブはxmlの下にあります。このtabhostActivityにコードを書くことができますか?あるいは、各フラグメントにコードを書くことができます。誰でもこのオプションを提案できますか?tablayoutにあるフラグメントクラスにアクションバーの色とタイトルを設定したい

public class TabHostActivity extends AppCompatActivity { 
private Toolbar toolbar; 
private TabLayout tabLayout; 
private ViewPager viewPager; 
private int[] tabIcons = { 
     R.drawable.hm_icon, 
     R.drawable.a_icon, 
     R.drawable.user_icon_white, 
     R.drawable.gear, 
     R.drawable.mail_icon_white 
}; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_tabs); 

    toolbar = (Toolbar) findViewById(R.id.toolbar); 

    /* setSupportActionBar(toolbar);*/ 
    /*getSupportActionBar().setDisplayHomeAsUpEnabled(true);*/ 

    viewPager = (ViewPager) findViewById(R.id.viewpager); 
    setupViewPager(viewPager); 


    tabLayout = (TabLayout) findViewById(R.id.tabs); 
    tabLayout.setupWithViewPager(viewPager); 
    setupTabIcons(); 


    permissionCheck = ContextCompat.checkSelfPermission(this, 
      Manifest.permission.WRITE_CONTACTS); 


    if (permissionCheck != PackageManager.PERMISSION_GRANTED) { 
     ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_CONTACTS}, REQUEST_READ_PHONE_STATE); 

    } 
} 
private void setupTabIcons() { 
    tabLayout.getTabAt(0).setIcon(tabIcons[0]); 
    tabLayout.getTabAt(1).setIcon(tabIcons[1]); 
    tabLayout.getTabAt(2).setIcon(tabIcons[2]); 
    tabLayout.getTabAt(3).setIcon(tabIcons[3]); 
    tabLayout.getTabAt(4).setIcon(tabIcons[4]); 

} 

private void setupViewPager(ViewPager viewPager) { 
    ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager()); 
    adapter.addFrag(new HomeMain(), ""); 
    adapter.addFrag(new ChooseDefault(), ""); 
    adapter.addFrag(new MyAccountActivity(), ""); 
    adapter.addFrag(new UtitlityFragment(), ""); 
    adapter.addFrag(new SMSFragment(), ""); 
    viewPager.setAdapter(adapter); 
} 


class ViewPagerAdapter extends FragmentPagerAdapter { 
    private final List<Fragment> mFragmentList = new ArrayList<>(); 
    private final List<String> mFragmentTitleList = new ArrayList<>(); 

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

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

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

    public void addFrag(Fragment fragment, String title) { 
     mFragmentList.add(fragment); 
     mFragmentTitleList.add(title); 
    } 

    @Override 
    public CharSequence getPageTitle(int position) { 
     return mFragmentTitleList.get(position); 
    } 
} 
+0

誰でも何か提案があります –

+0

スタックオーバーフローに参加したばかりの人の投票が下ですか?明らかに、この人はここでは新しい人で、良い質問をする時間が必要です。とても早い段階で彼のための下投票が彼に動機を与えなかったかもしれないかもしれない –

答えて

1

を使用することができます。

YourTabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() 
{ 
    @Override 
    public void onTabSelected(TabLayout.Tab tab) { 
     int pos = tab.getPosition(); 
     String title = YourFragmentTitle.get(pos); 
     YourActionBarObject.setTitle(title); 
    } 
} 
+0

java.lang.NullPointerException:ヌルオブジェクト参照で仮想メソッド 'void android.app.ActionBar.setTitle(java.lang.CharSequence)'を呼び出そうとしました –

+0

YourFragmentTitleこれは何ですか? –

+0

あなたのケースでは、それは "mFragmentTitleList" –

0

あなたは、あなたの望ましい結果を得るために、このような何かを試すことができTabLayout.OnTabSelectedListener

mTabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { 
     @Override 
     public void onTabSelected(TabLayout.Tab tab) { 
      final int position = tab.getPosition(); 
      final String title = mFragmentTitleList.get(position); 
      mActionBar.setTitle(titleRes); 
     } 
    } 
+0

このmFragmentTitleListとは何ですか? –

+0

エラーが発生しました。java.lang.NullPointerException:NULLオブジェクト参照で仮想メソッド 'void android.app.ActionBar.setTitle(java.lang.CharSequence)'を呼び出そうとしました。 –

+0

mActionBar = getSupportActionBar(); if(mActionBar!= null){ mActionBar.setTitle(title); } – Boukharist

関連する問題