Android IllegalArgumentException实例化SupportMapFragment
我正在使用一个数据库,其中记录了每个条目以及其他信息(纬度和经度) 在开发应用程序的“消费部分”时,通过Android IllegalArgumentException实例化SupportMapFragment,android,android-fragments,android-maps-v2,android-cursoradapter,illegalargumentexception,Android,Android Fragments,Android Maps V2,Android Cursoradapter,Illegalargumentexception,我正在使用一个数据库,其中记录了每个条目以及其他信息(纬度和经度) 在开发应用程序的“消费部分”时,通过光标或适配器生成并显示条目列表,我遇到了一个恼人的错误: java.lang.IllegalArgumentException:二进制XML文件行#85:重复id 0x7f050070、标记null或父id 0x0以及com.google.android.gms.maps.SupportMapFragment的另一个片段 我在谷歌上搜索发现,这是由于同一个片段的多次实例化造成的。但由于它不是一
光标或适配器生成并显示条目列表,我遇到了一个恼人的错误:
java.lang.IllegalArgumentException:二进制XML文件行#85:重复id 0x7f050070、标记null或父id 0x0以及com.google.android.gms.maps.SupportMapFragment的另一个片段
我在谷歌上搜索发现,这是由于同一个片段的多次实例化造成的。但由于它不是一个简单的片段,而是每次调用bindView()
时都会自动附加的东西,所以我实际上不知道如何删除所有嵌套片段
ReadActivity调用游标适配器
而在游标适配器中最重要的方法是:
@Override
public void bindView(View v, Context context, Cursor c) {
// [...]
GoogleMap map =
((SupportMapFragment) (((FragmentActivity) context).getSupportFragmentManager().findFragmentById(R.id.READ_map)))
.getMap();
final double lat = c.getDouble(c.getColumnIndexOrThrow(MySQLiteHelper.SPESE_KEY_LAT));
final double lon = c.getDouble(c.getColumnIndexOrThrow(MySQLiteHelper.SPESE_KEY_LON));
map.addMarker(new MarkerOptions().position(new LatLng(lat, lon)).title(tipo));
}
最后,阅读地图非常简单:
<fragment
android:id="@+id/READ_map"
android:layout_width="match_parent"
android:layout_height="100dp"
class="com.google.android.gms.maps.SupportMapFragment" />
我不太清楚您的设置,如果我错了,请纠正我。您使用的是游标适配器,这意味着您在每个单元格中都有一个带有映射的listview,并且希望在每个映射上放置一个由数据库填充的标记。如果是这样的话,我认为你得到了错误的片段<代码>((SupportMapFragment)((FragmentActivity)上下文).getSupportFragmentManager().findFragmentById(R.id.READ_-map)).getMap()
在片段活动中查找片段,在本例中,我认为这是您的ReadActivity。您需要的是在listview的相关单元格中查找片段
然而,我不确定这是可能的。此外,将片段放入listview中不是一个好主意,请查看此图。我建议找到一种不同的方式来显示您的信息,将地图数据从listview拉到单个地图中
<fragment
android:id="@+id/READ_map"
android:layout_width="match_parent"
android:layout_height="100dp"
class="com.google.android.gms.maps.SupportMapFragment" />