繁体   English   中英

如何在ViewPager适配器中使用getResources()?

[英]How to use getResources() in ViewPager Adapter?

我尝试了网络上所有可用的解决方案,但无法正常使用。

请帮助我指出此ViewPager Adapter实现中的错误,错误“无法解析方法getResources() ”不断显示!

这是我相关类的代码( getPageTitle方法中的问题):

 public class ViewPagerAdapter extends FragmentStatePagerAdapter { CharSequence Titles[]; int NumbOfTabs; public ViewPagerAdapter(FragmentManager fm,CharSequence mTitles[], int mNumbOfTabsumb) { super(fm); this.Titles = mTitles; this.NumbOfTabs = mNumbOfTabsumb; } @Override public Fragment getItem(int position) { if(position == 0) { Tab1 tab1 = new Tab1(); return tab1; } else { Tab2 tab2 = new Tab2(); return tab2; } } private int[] imageResId = { R.drawable.social, R.drawable.artist }; @Override public CharSequence getPageTitle(int position) { // Generate title based on item position // return tabTitles[position]; Drawable image = getResources().getDrawable(imageResId[position]); image.setBounds(0, 0, image.getIntrinsicWidth(), image.getIntrinsicHeight()); SpannableString sb = new SpannableString(" "); ImageSpan imageSpan = new ImageSpan(image, ImageSpan.ALIGN_BOTTOM); sb.setSpan(imageSpan, 0, 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); return sb; } @Override public int getCount() { return NumbOfTabs; } 

您不能像这样在Context类中调用getResources()方法。 发送上下文到适配器,如

private Context mContext;
public ViewPagerAdapter(FragmentManager fm,CharSequence mTitles[], int mNumbOfTabsumb, Context context) {
        super(fm);

        this.Titles = mTitles;
        this.NumbOfTabs = mNumbOfTabsumb;
this.mContext = context

    }

然后调用mContext.getResources(); 喜欢

Drawable image = mContext.getResources().getDrawable(imageResId[position]);

将Context对象传递给构造函数处的ViewPagerAdapter并:

传递Context对象:

 Context my_context ;
 public ViewPagerAdapter(Context passed_context ,FragmentManager fm ... )           
 {
    this.my_context = passed_context ;
    this.Titles = mTitles;
    this.NumbOfTabs = mNumbOfTabsumb;
 }

那么你可以通过以下方式获得此功能

my_context.getResources() ;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM