Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Google放置自动完成片段导致重复id错误_Android_Android Fragments_Android Nested Fragment - Fatal编程技术网

Android Google放置自动完成片段导致重复id错误

Android Google放置自动完成片段导致重复id错误,android,android-fragments,android-nested-fragment,Android,Android Fragments,Android Nested Fragment,嗨,我正在我的应用程序中使用谷歌的places autocomplete api。我需要谷歌的地方在另一个片段片段片段,并已得到它的工作。基本上,我有一个带有3个imagview的选项卡,当你点击其中一个时,一个片段将填充主框架布局。最初,如果我点击imagview,它会显示带有autocomplete places片段的片段,它会工作。然而,如果我转到另一个选项卡,然后返回到它,我会在GooglePlacesAutoComplete片段上得到一个重复的id错误 这是包含自动完成片段的片段的xm

嗨,我正在我的应用程序中使用谷歌的places autocomplete api。我需要谷歌的地方在另一个片段片段片段,并已得到它的工作。基本上,我有一个带有3个imagview的选项卡,当你点击其中一个时,一个片段将填充主框架布局。最初,如果我点击imagview,它会显示带有autocomplete places片段的片段,它会工作。然而,如果我转到另一个选项卡,然后返回到它,我会在GooglePlacesAutoComplete片段上得到一个重复的id错误

这是包含自动完成片段的片段的xml:

<LinearLayout
    android:id="@+id/linearLayout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@android:drawable/dialog_holo_light_frame"
    android:orientation="vertical">

    <fragment
        android:id="@+id/place_autocomplete_fragment"
        android:name="com.google.android.gms.location.places.ui.PlaceAutocompleteFragment"
        android:layout_width="match_parent"
        android:layout_height="42dp"
        android:background="@android:drawable/dialog_frame"
        tools:layout="@layout/place_autocomplete_fragment" /> 
this.locationSearchBar = (PlaceAutocompleteFragment)getActivity().getFragmentManager().findFragmentById(R.id.place_autocomplete_fragment);
这是我得到的错误:

Duplicate id 0x7f0800dc, tag null, or parent id 0x7f0800f6 with another fragment for com.google.android.gms.location.places.ui.PlaceAutocompleteFragment
我读了其他类似的问题,但他们的解决方案都不适合我。任何帮助都将不胜感激。

尝试添加以下代码:

@Override
public void onDestroy() {
    super.onDestroy();
    if(mAutocompleteFragment != null && getActivity() != null && !getActivity().isFinishing()) {
        getActivity().getFragmentManager().beginTransaction().remove(mAutocompleteFragment).commit();
    }
}
我相信你也可以把这个放在onDestroyView()中。在将自动完成片段添加到同一活动之前,需要将其从每个活动中删除。这对我来说是一个问题,我创建并随后销毁了一个添加了AutocompleteFragment的片段,然后尝试再次创建相同的片段,但没有销毁其中运行的活动。

尝试添加以下代码:

@Override
public void onDestroy() {
    super.onDestroy();
    if(mAutocompleteFragment != null && getActivity() != null && !getActivity().isFinishing()) {
        getActivity().getFragmentManager().beginTransaction().remove(mAutocompleteFragment).commit();
    }
}

我相信你也可以把这个放在onDestroyView()中。在将自动完成片段添加到同一活动之前,需要将其从每个活动中删除。这对我来说是一个问题,我创建并随后销毁了一个添加了AutocompleteFragment的片段,然后尝试再次创建相同的片段,而没有销毁其中运行的活动。

您是否尝试过简单地更改片段id?或者您使用的每个id都会出现错误?因为您有一个与
tools:layout=@layout/place\u autocomplete\u fragment
引用的名称相同的布局,所以您正在尝试查找活动的片段。。。不是从现在的碎片我每一次id@Mat
工具:
属性在编译时被删除time@cricket_007当im第二次膨胀碎片布局时,出现错误。就好像自动完成的片段永远不会被销毁,即使它所在的片段是。您是否尝试过简单地更改片段id?或者您使用的每个id都会出现错误?因为您有一个与
tools:layout=@layout/place\u autocomplete\u fragment
引用的名称相同的布局,所以您正在尝试查找活动的片段。。。不是从现在的碎片我每一次id@Mat
工具:
属性在编译时被删除time@cricket_007当im第二次膨胀碎片布局时,出现错误。就好像自动完成片段永远不会被销毁,即使它所在的片段是。谢谢为我工作,但我需要称之为onDestroyView();谢谢manThanks为我工作,但我需要称之为onDestroyView();谢谢你,伙计