Je souhaite modifier le titre d'un onglet dans une activité à onglets. Actuellement avec le code ci-dessous je pourrais passer à l'onglet, mais incapable de changer le titre de l'onglet à l'arrivée de la notification.Modifier le titre de l'onglet dans une activité de fragment
Comment puis-je changer le titre de l'onglet.
ViewPager viewPager = (ViewPager) AllTabs.mViewPager.findViewById(R.id.container);
int currentTab = viewPager.getCurrentItem();
viewPager.setCurrentItem(1);
Le code ci-dessus permet de modifier ou de passer à mytab. code Essayez ci-dessous pour vérifier le titre d'un onglet
PagerAdapter pagerAdapter = new PagerAdapter() {
@Override
public int getCount() {
return 0;
}
@Override
public boolean isViewFromObject(View view, Object object) {
return false;
}
};
Log.e("ServerManager_Title",pagerAdapter.getPageTitle(1).toString());
pagerAdapter.notifyDataSetChanged();
mais comme le pagerAdapter est associé à aucun onglet lancer son NullPointerException sur appel de toute méthode.
12-22 11:27:37.049 20448-20448/com.moodoff E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.moodoff, PID: 20448
java.lang.NullPointerException: Attempt to invoke interface method 'java.lang.String java.lang.CharSequence.toString()' on a null object reference
at com.moodoff.helper.ServerManager$3.run(ServerManager.java:199)
at android.os.Handler.handleCallback(Handler.java:815)
at android.os.Handler.dispatchMessage(Handler.java:104)
at android.os.Looper.loop(Looper.java:207)
at android.app.ActivityThread.main(ActivityThread.java:5776)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679)
Mes codes: Dans ServerManager.java fichier
En AllTabs.java qui accueille tous les onglets ou est l'activité principale qui a tous les onglets AllTabs public class étend AppCompatActivity met en œuvre ViewPager. OnPageChangeListener {
/**
* The {@link android.support.v4.view.PagerAdapter} that will provide
* fragments for each of the sections. We use a
* {@link FragmentPagerAdapter} derivative, which will keep every
* loaded fragment in memory. If this becomes too memory intensive, it
* may be best to switch to a
* {@link android.support.v4.app.FragmentStatePagerAdapter}.
*/
private SectionsPagerAdapter mSectionsPagerAdapter;
/**
* The {@link ViewPager} that will host the section contents.
*/
//private ViewPager mViewPager;
public static ViewPager mViewPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_all_tabs);
// Create the adapter that will return a fragment for each of the three
// primary sections of the activity.
mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());
// Set up the ViewPager with the sections adapter.
mViewPager = (ViewPager) findViewById(R.id.container);
mViewPager.setAdapter(mSectionsPagerAdapter);
TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);
tabLayout.setupWithViewPager(mViewPager);
//Request all the dangerous permissions over here
}
@Override
public void onPageScrollStateChanged(int state) {
}
@Override
public void onPageSelected(int position) {
}
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
Ami faire la bonne manière? À l'arrivée des notifications, je veux afficher un nombre (un nombre) sur mon deuxième onglet (peu importe dans quel onglet je suis sur les trois onglets que j'ai) ce nombre est dynamique et donc une fois la notification apparaît, je dois comptez cela et affichez ie change le titre du second onglet en un nouveau titre basé sur le compte dynamique.
getPageTitle (1) .toString() null –
@Charuka: ouais je sais que parce que le pageradapter n'est associé à aucun fragment, mais ma préoccupation actuelle est comment puis-je essayer de changer le titre d'un onglet. – Santanu
Vous devez d'abord transmettre votre tableau de titres dans votre adaptateur, puis essayer d'obtenir le nom de l'onglet à l'aide de l'objet adaptateur et modifier le nom de votre onglet. – Shailesh