如何在导航抽屉中使用地图片段?

时间:2014-10-16 09:19:40

标签: android navigation-drawer

如何在导航抽屉中使用片段地图?我试图使用但错误,所以我拥有三个按时间顺序排列的列表,其中包含显示地图,我创建了两个还是空的。当我在选择列表视图后打开第一个路线图时,两个都显示空白活动不是问题,当我想回到应用程序直接映射的情况时..

public class CreateFragment extends Fragment {
	
	
	public CreateFragment() {
		
	   
		
		
	}

	 
	@Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

		View rootView = inflater.inflate(R.layout.fragment_create, container, false);

		return rootView;
	}

}
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <fragment
        android:id="@+id/fragment1"
        android:name="com.google.android.gms.maps.MapFragment"
       
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true" />

</RelativeLayout>

![my LogCat][1]


    10-16 12:16:46.080: E/dalvikvm(1007): Could not find class 'gpq', referenced from method gpr.a
10-16 12:16:46.090: E/dalvikvm(1007): Could not find class 'gpq', referenced from method gpr.a
10-16 12:16:46.090: E/dalvikvm(1007): Could not find class 'gpq', referenced from method gpr.a
10-16 12:16:48.980: E/dalvikvm(1007): Could not find class 'com.google.android.gms.location.internal.ParcelableGeofence', referenced from method gls.a
10-16 12:17:06.290: E/AndroidRuntime(1007): FATAL EXCEPTION: main
10-16 12:17:06.290: E/AndroidRuntime(1007): Process: com.Zen.gethere, PID: 1007
10-16 12:17:06.290: E/AndroidRuntime(1007): android.view.InflateException: Binary XML file line #6: Error inflating class fragment
10-16 12:17:06.290: E/AndroidRuntime(1007): 	at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:713)
10-16 12:17:06.290: E/AndroidRuntime(1007): 	at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
10-16 12:17:06.290: E/AndroidRuntime(1007): 	at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
10-16 12:17:06.290: E/AndroidRuntime(1007): 	at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
10-16 12:17:06.290: E/AndroidRuntime(1007): 	at com.Zen.gethere.CreateFragment.onCreateView(CreateFragment.java:43)
10-16 12:17:06.290: E/AndroidRuntime(1007): 	at android.app.Fragment.performCreateView(Fragment.java:1700)
10-16 12:17:06.290: E/AndroidRuntime(1007): 	at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:890)
10-16 12:17:06.290: E/AndroidRuntime(1007): 	at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1062)
10-16 12:17:06.290: E/AndroidRuntime(1007): 	at android.app.BackStackRecord.run(BackStackRecord.java:684)
10-16 12:17:06.290: E/AndroidRuntime(1007): 	at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1447)
10-16 12:17:06.290: E/AndroidRuntime(1007): 	at android.app.FragmentManagerImpl$1.run(FragmentManager.java:443)
10-16 12:17:06.290: E/AndroidRuntime(1007): 	at android.os.Handler.handleCallback(Handler.java:733)
10-16 12:17:06.290: E/AndroidRuntime(1007): 	at android.os.Handler.dispatchMessage(Handler.java:95)
10-16 12:17:06.290: E/AndroidRuntime(1007): 	at android.os.Looper.loop(Looper.java:136)
10-16 12:17:06.290: E/AndroidRuntime(1007): 	at android.app.ActivityThread.main(ActivityThread.java:5017)
10-16 12:17:06.290: E/AndroidRuntime(1007): 	at java.lang.reflect.Method.invokeNative(Native Method)
10-16 12:17:06.290: E/AndroidRuntime(1007): 	at java.lang.reflect.Method.invoke(Method.java:515)
10-16 12:17:06.290: E/AndroidRuntime(1007): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
10-16 12:17:06.290: E/AndroidRuntime(1007): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
10-16 12:17:06.290: E/AndroidRuntime(1007): 	at dalvik.system.NativeStart.main(Native Method)
10-16 12:17:06.290: E/AndroidRuntime(1007): Caused by: java.lang.IllegalArgumentException: Binary XML file line #6: Duplicate id 0x7f080051, tag null, or parent id 0xffffffff with another fragment for com.google.android.gms.maps.MapFragment
10-16 12:17:06.290: E/AndroidRuntime(1007): 	at android.app.Activity.onCreateView(Activity.java:4791)
10-16 12:17:06.290: E/AndroidRuntime(1007): 	at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:689)
10-16 12:17:06.290: E/AndroidRuntime(1007): 	... 19 more

enter code here

1 个答案:

答案 0 :(得分:0)

您可以尝试从此部分的导航抽屉中调用类似OpenMap()的方法,该方法位于主活动中,其代码如下:

public void onSectionAttached(int number) {
        switch (number) {
            case 1:
                mTitle = getString(R.string.title_section1);
                OpenMap();
                break;




private void openMap() {
        double latitude = 32.715000;
        double longitude = -117.162500;
        String label = "Starting point";
        String uriBegin = "geo:" + latitude + "," + longitude;
        String query = latitude + "," + longitude + "(" + label + ")";
        String encodedQuery = Uri.encode(query);
        String uriString = uriBegin + "?q=" + encodedQuery + "&z=16";
        Uri uri = Uri.parse(uriString);
        Intent intent = new Intent(android.content.Intent.ACTION_VIEW, uri);
        startActivity(intent);