Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

can't use method "getString(int resId)" in FragmentPagerAdapter

  1. I've the following class in my fragment activity now i want to get name of tabs from strings.xml but i can't able to use method getString(int resId) it gives a error message "Cannot make a static reference to the non-static method getString(int) from the type Context".
  2. In method public CharSequence getPageTitle(int position) I need to get like this name = getString(R.string.mystring) any help is appreciated.
public static class AppSectionsPagerAdapter extends FragmentPagerAdapter {

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

          @Override
          public Fragment getItem(int i) {
              switch (i) {
              case 0:
                  Fragment fragment = new Activity1();
                  return fragment;

              case 1:
                  Fragment fragment1 = new Activity2();
                  return fragment1;

              default:
                  return new Activity2();
              }
          }

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

          public CharSequence getPageTitle(int position) {
              String name = null;
              if (position==0) {
                  name = "Movie Details";
              }else if (position==1) {
                  name = "Movie Comments";
              }
              return name;
          }
      }
like image 543
Nitin Misra Avatar asked Nov 15 '13 17:11

Nitin Misra


1 Answers

You need a Context object to call getResources().getString(int resID). Try passing a Context in your constructor and using it here like

Context mContext;

public AppSectionsPagerAdapter(FragmentManager fm,Context context) {
          super(fm);
           mContext = context
      }

and then use mContext.getResources().getString(int resID)

like image 93
Apoorv Avatar answered Sep 19 '22 22:09

Apoorv