Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android viewPager未更改标题栏中的标题_Android_Android Viewpager_Toolbar - Fatal编程技术网

Android viewPager未更改标题栏中的标题

Android viewPager未更改标题栏中的标题,android,android-viewpager,toolbar,Android,Android Viewpager,Toolbar,我有这个带有工具栏和viewPager的“框架”应用程序 基本活动: public abstract class BaseActivity extends AppCompatActivity { @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(getLayou

我有这个带有工具栏和viewPager的“框架”应用程序

基本活动:

public abstract class BaseActivity extends AppCompatActivity {

   @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(getLayoutResource());
    }


    protected abstract int getLayoutResource();
}
工具栏活动:

protected static Toolbar toolbar;


@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    View contentView = findViewById(R.id.flToolbarContentContainer);
    if (contentView instanceof ViewGroup) {
        ((ViewGroup) contentView)
                .addView(LayoutInflater.from(this)
                        .inflate(getToolbarLayoutResource()
                                , (ViewGroup) contentView, false));
    }
    toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
 }

 @Override
 protected int getLayoutResource() {
     return R.layout.activity_toolbar;
 }

 protected abstract int getToolbarLayoutResource();

 public void showToolbar() {
     toolbar.setVisibility(View.VISIBLE);
 }

 public void hideToolbar() {
     toolbar.setVisibility(View.GONE);
 }

    public static void setTitle(String title){
        toolbar.setTitle(title);
    }
}
主要活动:

public class MainActivity extends ToolbarActivity {


    @Override
    protected int getToolbarLayoutResource() {
        return R.layout.activity_main;
    }
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        TabFragment homeFragment = new TabFragment();
        getSupportFragmentManager()
                .beginTransaction()
                .replace(R.id.llMainActivityContainer, homeFragment)
                .commit();
    }
还有。TabFragment:

public class TabFragment extends Fragment {

    public static TabLayout tabLayout;
    public static ViewPager viewPager;
    public static int int_items = 3 ;
    private String[] titles = new String[3];

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        titles[0] = "Összes";
        titles[1] = "Saját";
        titles[2] = "Közelben";

        /**
         *Inflate tab_layout and setup Views.
         */
            View x =  inflater.inflate(R.layout.view_pager,null);
            tabLayout = (TabLayout) x.findViewById(R.id.tabs);
            viewPager = (ViewPager) x.findViewById(R.id.viewpager);

        /**
         *Set an Apater for the View Pager
         */
        viewPager.setAdapter(new MyAdapter(getChildFragmentManager()));

        /**
         * Now , this is a workaround ,
         * The setupWithViewPager dose't works without the runnable .
         * Maybe a Support Library Bug .
         */

        tabLayout.post(new Runnable() {
            @Override
            public void run() {
                    tabLayout.setupWithViewPager(viewPager);
                   }
        });


        viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

            }

            @Override
            public void onPageSelected(int position) {
                ToolbarActivity.setTitle(""+titles[position]);
            }

            @Override
            public void onPageScrollStateChanged(int state) {

            }
        });
        return x;

    }

    class MyAdapter extends FragmentPagerAdapter {

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

        /**
         * Return fragment with respect to Position .
         */

        @Override
        public Fragment getItem(int position)
        {
          switch (position){
              case 0 : return new PrimaryFragment();
              case 1 : return new SecondFragment();
              case 2 : return new ThirdFragment();
          }
        return null;
        }

        @Override
        public int getCount() {

            return int_items;

        }

        /**
         * This method returns the title of the tab according to the position.
         */

        @Override
        public CharSequence getPageTitle(int position) {

            return titles[position];
        }
    }
我的问题是如果我从viewPager打开一个新活动并完成它, 当我返回到viewPager活动时,onPageSelected侦听器将运行,但不会更改工具栏标题

你能帮我解决这个问题吗

谢谢大家!

试试看

getActivity.setTitle(""+titles[position]);