У меня есть несколько вопросов о ViewPager в андроиде студии,Добавление OpenStreetMap в ViewPager
Так я сделал ViewPager с 3-мя экранов с использованием ViewPager и класса PagerAdapter общественного класс MainActivity расширяет FragmentActivity {
private MapView myOpenMapView;
private MapController myMapController;
ExpandableListAdapter listAdapter;
ExpandableListView expListView;
List<String> listDataHeader;
HashMap<String, List<String>> listDataChild;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MyPagerAdapter adapter = new MyPagerAdapter();
ViewPager myPager = (ViewPager) findViewById(R.id.viewpager_layout);
myPager.setAdapter(adapter);
myPager.setCurrentItem(1);
expListView = (ExpandableListView) findViewById(R.id.expandableListView2);
prepareListData();
listAdapter = new ExpandableListAdapter(this,listDataHeader,listDataChild);
}
public class MyPagerAdapter extends PagerAdapter {
public int getCount() {
return 3;
}
public Object instantiateItem(ViewGroup collection, int position) {
View view=null;
LayoutInflater inflater = (LayoutInflater) collection.getContext()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
int resId = 0;
switch (position) {
case 0:
resId = R.layout.activity_friend;
view = inflater.inflate(resId, null);
break;
case 1:
resId = R.layout.fragment_main_page;
view = inflater.inflate(resId, null);
break;
case 2:
resId = R.layout.activity_map;
view = inflater.inflate(resId, null);
myOpenMapView = (MapView) findViewById(R.id.openmapview);
//myOpenMapView.setBuiltInZoomControls(true);
//myMapController = myOpenMapView.getController();
//myMapController.setZoom(4);
//myOpenMapView.setTileSource(TileSourceFactory.MAPQUESTOSM);
break;
}
((ViewPager) collection).addView(view, 0);
return view;
}
@Override
public void destroyItem(ViewGroup arg0, int arg1, Object arg2) {
((ViewPager) arg0).removeView((View) arg2);
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == ((View) arg1);
}
//public boolean isViewFromObject(ViewGroup arg0, Object arg1) {
// return arg0 == ((View) arg1);
//}
@Override
public Parcelable saveState() {
return null;
}
}
Это работает просто отлично, теперь в моем проекте я хочу реализовать OpenStreetMap, я добавил этот код
myOpenMapView = (MapView) findViewById(R.id.openmapview);
myOpenMapView.setBuiltInZoomControls(true);
myMapController = myOpenMapView.getController();
myMapController.setZoom(4);
myOpenMapView.setTileSource(TileSourceFactory.MAPQUESTOSM);
этот код работает отлично, если он помещен в отдельную деятельность, но по какой-либо причине, если он находится внутри oncreate в viewpager или внутри класса pageradapter, он не работает
Может кто-нибудь объяснить, почему он не работает и как я может это исправить?