当我直接在PagerAdapter
创建时访问该方法时,我有getViewAtPosition()
方法。当我尝试使用参考时,我不能。我可以通过参考来获得acecces吗?
我可以: 1:
我不能: 2:
public class CardapioRU extends Fragment {
private ViewPager mPager;
private PagerAdapter mPagerAdapter;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
ViewGroup rootView = (ViewGroup) inflater.inflate(R.layout.view_pager_ru, container, false);
mPager = (ViewPager) rootView.findViewById(R.id.pager);
mPagerAdapter = new PagerAdapterRU(inflater);
mPager.setAdapter(mPagerAdapter);
return rootView;
}
}
public class PagerAdapterRU extends PagerAdapter {
private View domingo = null;
private View segunda = null;
@SuppressLint("InflateParams")
public PagerAdapterRU(LayoutInflater inflater) {
domingo = inflater.inflate(R.layout.ru_domingo, null);
segunda = inflater.inflate(R.layout.ru_segunda, null);
}
public View getViewAtPosition(int position) {
View view = null;
if (position == 0) {
view = domingo;
}
if (position == 1) {
view = segunda;
}
;
return view;
};
@Override
public Object instantiateItem(View collection, int position) {
View view = getViewAtPosition(position);
((ViewPager) collection).addView(view, 0);
return view;
}
@Override
public int getCount() {
return 2;
}
答案 0 :(得分:2)
getViewAtPosition()
是PagerAdapterRU
的方法。
在第一个屏幕截图中,您直接在PagerAdapterRU
个实例上调用方法,但在第二个屏幕截图中,您将在PagerAdapter
上调用该方法。
您初始化它的方式并不重要,您已将其声明为PagerAdapter
,因此您可以访问PagerAdapter
的方法。< / p>
要访问子类的方法,请使用子类的类型声明它。
更改以下内容:
private PagerAdapter mPagerAdapter;
对此:
private PagerAdapterRU mPagerAdapter;
您可以getViewAtPosition()
致电mPagerAdapter
。