我正在使用谷歌地图,因此在选中复选框时,一些图片将被添加到图层中,另一个复选框将添加不同的图层...当取消选中第一个复选框时,将删除与其相关的图片以及第二个复选框也会出现同样的问题。现在的问题是,当检查第一个复选框时,添加了图片然后我取消选中相关的复选框,当第二个复选框工作正常时,图片没有被删除? ?请帮忙
我有一个按钮,当我按下它时会显示一个对话框..此对话框包含一个复选框。 。
我在类
CharSequence[] items = {"Layer1", "Layer2"};
boolean[] itemsChecked = new boolean[items.length];
在On create方法中我定义了以下内容
Button AddLayers = (Button) findViewById(R.id.addlayers) ;
AddLayers.setOnClickListener(this) ;
然后在行动中
public void onClick(View v) {
// TODO Auto-generated method stub
showDialog(0);
}
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case 0:
return new AlertDialog.Builder(this)
//.setIcon(R.drawable.red_point)
.setTitle("Add Layer")
.setPositiveButton("OK", new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int id)
{
SparseBooleanArray CheCked = ((AlertDialog) dialog).getListView().getCheckedItemPositions();
if (CheCked.get(0))
{
...
mapOverlays.add(custom);
}
else {
mapOverlays.remove(custom);
}
if (CheCked.get(1))
{
......
mapOverlays.add(custom2);
}
else
{
mapOverlays.remove(custom2) ;
}
}
答案 0 :(得分:0)
如果勾选复选框,则会显示一些数据,如果未选中,则需要删除这些数据,如果是,请尝试使用mapOverlays.clear();
代替mapOverlays.remove(custom2) ;
答案 1 :(得分:0)
大家好我找到了解决办法......那是因为自定义的定义在if(CheCked.get(0))里面...它应该在Oncreat()
因为在if(CheCked.get(0))中定义自定义将在每次检查复选框时创建一个新自定义,并且当我们要删除它时第一个自定义将丢失,因为已定义了一个新自定义< / p>
感谢所有试图提供帮助的人,我非常感谢