[英]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.