我有一個創建兩個片段類的主類。其中之一是MapDisplay()。java顯示地圖片段
我想在這個類中顯示地圖。這裏是我的MapDisplay代碼()
public class MapDisplay extends Fragment implements OnMapClickListener{
private GoogleMap googlemap;
LatLng GAN = new LatLng(34.4305556,74.9250000);
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.maplayout, container, false);
try
{
if(googlemap==null)
{
googlemap=
((SupportMapFragment)getFragmentManager().findFragmentById(R.id.map2)).getMap();
googlemap.setMapType(GoogleMap.MAP_TYPE_HYBRID);
googlemap.setMyLocationEnabled(true);
googlemap.getUiSettings().setMyLocationButtonEnabled(true);
googlemap.getUiSettings().setZoomControlsEnabled(false);
}
if(googlemap!=null)
{
Marker m = googlemap.addMarker(new MarkerOptions().position(GAN).title("Gangbal"));
m.setIcon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_ORANGE));
googlemap.moveCamera(CameraUpdateFactory.newLatLngZoom(GAN, 15));
googlemap.animateCamera(CameraUpdateFactory.zoomTo(10),2000,null);
googlemap.setOnMapClickListener(this);
}
else
{
Toast.makeText(getActivity(), "WELL! HELLO THERE", Toast.LENGTH_LONG).show();
}
} catch(Exception e)
{
e.printStackTrace();
}
return rootView;
}
@Override
public void onMapClick(LatLng arg0) {
Bundle args1 = new Bundle();
args1.putParcelable("LOCATION", GAN);
Intent a = new Intent(getActivity(),FullScreenMap.class);
a.putExtra("bundle", args1);
a.putExtra("title", "Gangbal");
startActivity(a);
}
}
這是我的XML佈局文件maplayout
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<fragment
android:id="@+id/map2"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.MapFragment" />
</RelativeLayout>
但是這個類,不顯示我想要的地圖。只是一個沒有標記的世界地圖。同時點擊此地圖不起作用。
我在另一個類
FragmentPagerAdapter tabadapter = new TabAdapter(getSupportFragmentManager());
ViewPager pager = (ViewPager)findViewById(R.id.tabpager);
pager.setAdapter(tabadapter);
class TabAdapter extends FragmentPagerAdapter{
public TabAdapter(FragmentManager fm){
super(fm);
}
@Override
public Fragment getItem(int m) {
switch(m)
{
case 0:
return new MapDisplay();
case 1:
return new Description();
}
return null;
}
@Override
public CharSequence getPageTitle(int position) {
return CONTENT[position % CONTENT.length];
}
@Override
public int getCount() {
return CONTENT.length;
}
}
所以我想MapDisplay()應延長片段創建MapDisplay()片段級,右? 我在做什麼錯?請幫忙!
你試圖擴大MapFragment而不是碎片? –
你這樣做完全錯了,你需要擴展'MapFragment'而不是'Fragment',當你在xml中使用'MapFragment'時,你也不應該使用'SupportMapFragment',並且你沒有通過id得到一個Fragment一個片段,你只在一個活動 – tyczj
@tyczj中做到這一點。檢查編輯的問題。我正在創建片段類 – user1377504