Access to getString() in android.support.v4.app.FragmentPagerAdapter?

后端 未结 3 904
既然无缘
既然无缘 2020-12-10 06:23

In a class extending android.support.v4.app.FragmentPagerAdapter, is there any way to get access to the Context.getString(..) method without the ex

相关标签:
3条回答
  • 2020-12-10 06:39

    I had a similar issue. From a drawer layout, I wanted to decide which fragment to use in a method called from a helper class.

    So in onCreateView...

    String form = getResources().getStringArray(R.array.drawer_array)[i];
            Context context = getActivity().getApplicationContext();
    
            FragmentHelper fh = new FragmentHelper();
            int myFragment = fh.getCurrentFragment(form,context);
    

    And in public FragmentHelper()...

        public int getCurrentFragment(String form, Context context){
                  ...
                  context.getResources().getString(R.string.label_item1);
                  ...
        }
    

    The trick being to add context in front of getResources(). Otherwise, my stack showed that the fragment was not attached to an activity.

    Hope this helps someone.

    0 讨论(0)
  • 2020-12-10 06:44

    From an Activity, use:

    this.getString(R.string.string_name);
    

    From a Fragment, use:

    getActivity.getString(R.string.string_name);
    

    From an adapter, use:

    getContext().getResources().getString(R.string.string_name);
    
    0 讨论(0)
  • 2020-12-10 06:51

    From a fragment use :

     getActivity().getString(...)
    

    From an adapter use :

     getContext().getResources().getString(...)
    

    Yes, you need a context to access the resources.

    0 讨论(0)
提交回复
热议问题