不能在FragmentPagerAdapter中使用方法“getString(int resId)”

时间:2013-11-15 17:10:37

标签: java android android-fragmentactivity

  1. 我的片段活动中有以下类,现在我想从strings.xml获取制表符的名称但是我无法使用方法getString(int resId)它会出现错误消息“无法生成静态引用从类型Context“。
  2. 到非静态方法getString(int)
  3. 在方法public CharSequence getPageTitle(int position)中,我需要像name = getString(R.string.mystring)这样得到任何帮助。
  4. 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;
              }
          }
    

2 个答案:

答案 0 :(得分:14)

您需要Context个对象来呼叫getResources().getString(int resID)。尝试在构造函数中传递Context并在此处使用

Context mContext;

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

然后使用mContext.getResources().getString(int resID)

答案 1 :(得分:0)

如果它是内部类,您可以从类定义中删除static关键字。

编辑:不要这样做 - 请参阅下面的评论。