2014-10-09 3 views
0

조각 클래스를 사용하는 슬라이더 메뉴가 있습니다. "야외"탭을 클릭 할 때마다 Outdoor Fragment 클래스가 완벽하게로드됩니다. 그러나 "야외"에서 슬라이더 메뉴를 다시 클릭하면 야외 조각이 충돌합니다.조각을 다시 선택하면 Google지도 v2가 충돌합니다.

이 내가 온라인 자습서를 다음에 그것을처럼 이런 일이 왜 확실하지 오전 내 오류

10-09 16:46:17.914: E/Fragment(15011): Fragment not null 
10-09 16:46:17.964: E/AndroidRuntime(15011): FATAL EXCEPTION: main 
10-09 16:46:17.964: E/AndroidRuntime(15011): Process: me.chihao.maes, PID: 15011 
10-09 16:46:17.964: E/AndroidRuntime(15011): android.view.InflateException: Binary XML file line #7: Error inflating class fragment 
10-09 16:46:17.964: E/AndroidRuntime(15011): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:713) 
10-09 16:46:17.964: E/AndroidRuntime(15011): at android.view.LayoutInflater.rInflate(LayoutInflater.java:755) 
10-09 16:46:17.964: E/AndroidRuntime(15011): at android.view.LayoutInflater.inflate(LayoutInflater.java:492) 
10-09 16:46:17.964: E/AndroidRuntime(15011): at android.view.LayoutInflater.inflate(LayoutInflater.java:397) 
10-09 16:46:17.964: E/AndroidRuntime(15011): at me.chihao.maes.OutdoorFragment.onCreateView(OutdoorFragment.java:84) 
10-09 16:46:17.964: E/AndroidRuntime(15011): at android.support.v4.app.Fragment.performCreateView(Fragment.java:1504) 
10-09 16:46:17.964: E/AndroidRuntime(15011): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:942) 
10-09 16:46:17.964: E/AndroidRuntime(15011): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1121) 
10-09 16:46:17.964: E/AndroidRuntime(15011): at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682) 
10-09 16:46:17.964: E/AndroidRuntime(15011): at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1484) 
10-09 16:46:17.964: E/AndroidRuntime(15011): at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:450) 
10-09 16:46:17.964: E/AndroidRuntime(15011): at android.os.Handler.handleCallback(Handler.java:733) 
10-09 16:46:17.964: E/AndroidRuntime(15011): at android.os.Handler.dispatchMessage(Handler.java:95) 
10-09 16:46:17.964: E/AndroidRuntime(15011): at android.os.Looper.loop(Looper.java:212) 
10-09 16:46:17.964: E/AndroidRuntime(15011): at android.app.ActivityThread.main(ActivityThread.java:5151) 
10-09 16:46:17.964: E/AndroidRuntime(15011): at java.lang.reflect.Method.invokeNative(Native Method) 
10-09 16:46:17.964: E/AndroidRuntime(15011): at java.lang.reflect.Method.invoke(Method.java:515) 
10-09 16:46:17.964: E/AndroidRuntime(15011): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
10-09 16:46:17.964: E/AndroidRuntime(15011): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:684) 
10-09 16:46:17.964: E/AndroidRuntime(15011): at dalvik.system.NativeStart.main(Native Method) 
10-09 16:46:17.964: E/AndroidRuntime(15011): Caused by: java.lang.IllegalArgumentException: Binary XML file line #7: Duplicate id 0x7f08003b, tag null, or parent id 0xffffffff with another fragment for com.google.android.gms.maps.MapFragment 
10-09 16:46:17.964: E/AndroidRuntime(15011): at android.app.Activity.onCreateView(Activity.java:4791) 
10-09 16:46:17.964: E/AndroidRuntime(15011): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:689) 
10-09 16:46:17.964: E/AndroidRuntime(15011): ... 19 more 

입니다.

이 내 야외 조각 클래스입니다 :

public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 
    View rootView = inflater.inflate(R.layout.fragment_outdoor, container, 
      false); 

    context = this.getActivity(); 
    hashmarkers = new HashMap<String, String>(); 
    hashImages = new HashMap<String, String>(); 
    refresh = (Button) rootView.findViewById(R.id.refresh); 
    try { 
     // Loading map 
     initilizeMap(); 

    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

    listName.clear(); 
    listIllness.clear(); 
    listIC.clear(); 
    listElderlyimage.clear(); 
    listArduinomac.clear(); 
    listLat.clear(); 
    listLong.clear(); 
    googleMap.getUiSettings().setZoomGesturesEnabled(true); 
    googleMap.getUiSettings().setRotateGesturesEnabled(true); 
    googleMap.getUiSettings().setMyLocationButtonEnabled(true); 
    googleMap.setMyLocationEnabled(true); 
    googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(
      1.3000, 103.8000), 10.0f)); 
    zone = Act_Main.getzone(); 
    ip = Act_Main.getip(); 
    URL_gps_location = "http://" + ip + "/droidlogin/gps_location.php"; 
    post4 = new Httppostaux(); 
    googleMap.setInfoWindowAdapter(new InfoWindowAdapterMarker(context)); 
    googleMap.clear(); 
    new asyncGPS().execute(zone); 

    refresh.setOnClickListener(new OnClickListener() { 

     public void onClick(View v) { 
      googleMap.clear(); 
      // TODO Auto-generated method stub 
      listName.clear(); 
      listIllness.clear(); 
      listIC.clear(); 
      listElderlyimage.clear(); 
      listArduinomac.clear(); 
      listLat.clear(); 
      listLong.clear(); 


      new asyncGPS().execute(zone); 
     } 
    }); 
    return rootView; 
} 

와 넣다 내 fragment_outdoor.xml 파일

<?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" 
android:orientation="vertical" > 

<fragment 
    android:id="@+id/map" 
    class="com.google.android.gms.maps.MapFragment" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_above="@+id/refresh" /> 

<Button 
    android:id="@+id/refresh" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentRight="true" 
    android:text="Refresh" /> 
당신은 모든 코드를 보여줄 필요가

+0

http://stackoverflow.com/questions/14565460/error-opening-supportmapfragment-for-second-time Kaleb 응답을 확인하십시오. – momo

+0

[조각 내에서 맵을 사용하는 방법] (http : // stackoverflow. com/questions/25848513/how-to-use-maps-fragment-25848811 # 25848811) – kId

+0

추가지도 조각 클래스 = "com.google.android.gms.maps.SupportMapFragment" – goonerDroid

답변

0

을 확인해야합니다, 특히 그 하나는 탭을 전환합니다. 그러나 다음과 같은 오류가 나타납니다.

Duplicate id 0x7f08003b, tag null, or parent id 0xffffffff with another fragment 
for com.google.android.gms.maps.MapFragment 

이 조각이 포함 된보기를 이미 포함하고있는 루트보기에 추가하려고합니다 (즉, id 충돌). 지도 조각을 XML 코드에서 참조하는 대신 코드에서 직접 시작하고 추가 할 수도 있습니다.

+0

안녕하세요, 여전히 IM입니다. 왜 이런 일이 일어나는지 확실하지 않습니다. 내가 한 일은 열린 슬라이더 메뉴 -> 야외 탭에서 누르기 -> Google지도가 완벽하게 잘로드됩니다. 슬라이더 메뉴를 다시 열면 -> 야외 탭 -> 내 응용 프로그램이 즉시 충돌합니다. –

+0

나는 이미 당신에게 말 했었습니다. 물건을 교환하는 올바른 코드를 보여주십시오. 문제가지도 조각의 바깥에 있기 때문에 조각 만 아니라 전체 레이아웃을 표시하십시오. –

관련 문제