【问题标题】:how to use maps fragment in navigation drawer?如何在导航抽屉中使用地图片段?
【发布时间】:2014-10-16 09:19:40
【问题描述】:

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

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

【问题讨论】:

  • 所有没有解决这个问题的问题,因为我这里只放了片段图,还没有在课堂上出现编码错误!
  • 改进你的提问方式,然后提问。无法理解你真正想要的是什么。还要发布您的代码,我们不是魔术师,可以从您的错误中猜测代码。 stackoverflow.com/help/how-to-ask 关注此链接,了解如何在 SO 中提问。
  • 对不起我会解决我的问题对不起我的英语不合格

标签: android navigation-drawer


【解决方案1】:

您可以尝试在本节的导航抽屉中调用类似 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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多