我创建了一个显示谷歌地图的应用程序。它是通过扩展Activity类创建的。 但现在我希望地图显示在一个标签上。这是我的主要活动课程。 我创建了3个标签。我想点击第一个标签显示地图。
public class MainActivity extends FragmentActivity implements ActionBar.TabListener
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Initilization
viewPager = (ViewPager) findViewById(R.id.pager);
actionBar = getActionBar();
mAdapter = new TabsPagerAdapter(getSupportFragmentManager());
viewPager.setAdapter(mAdapter);
actionBar.setHomeButtonEnabled(false);
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
// Adding Tabs
for (String tab_name : tabs)
{
actionBar.addTab(actionBar.newTab().setText(tab_name).setTabListener(this));
}
}
这是地图片段的代码
public class MapFragment extends Fragment
{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
View rootView = inflater.inflate(R.layout.fragment_map, container, false);
return rootView;
}
}
这是fragment_map.xml的代码
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/RelativeLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MapActivity" >
<fragment
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="200dp"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
class="com.google.android.gms.maps.MapFragment" />
<ProgressBar
android:id="@+id/speedbar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="250dp"
android:layout_height="50dp"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_below="@+id/map"
android:layout_weight="1" />
<EditText
android:id="@+id/speed_text"
android:layout_width="71dp"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_alignTop="@+id/speedbar"
android:ems="10"
android:enabled="false" >
<requestFocus />
</EditText>
当我执行上面的代码时,它说
android.view.InflateException: Binary XML file line #9: Error inflating class fragment
答案 0 :(得分:0)
由于您使用的是Activty
,因此您的活动应该延长MapFragment
。
您还有getSupportFragmentManager()
如果您定位api级别11及以下,则应使用SupportMapFragment
扩展FragmentActivity
并使用支持库
如果没有切换到MapFragment
。
此外,如果您想在片段中显示地图,您应该使用MapView
http://developer.android.com/reference/com/google/android/gms/maps/MapView.html
你可以参考这个
Android - android.view.InflateException: Binary XML file line #8: Error inflating class fragment