0

我正在使用Google地图,因此在选中复选框时,将添加一些图片,而其他复选框将添加不同的图层...取消选中的第一个复选框时,将删除与图片相关的图片,并且对于同样的意愿也将发生在第二个复选框中。现在问题是,在选中第一个复选框时,添加了图片,然后我会取消选中相关的复选框,当第二个复选框正常工作时,图片未删除?请帮忙

我有一个按钮,当我按下它时会显示一个对话框。这个对话框包含一个复选框。.
我在类中定义了以下变量

     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)  ;
                    }



                }
4

2 回答 2

0

勾选复选框时,您会显示一些数据,而未选中时,您需要删除这些数据,如果是这样,请尝试使用mapOverlays.clear();而不是 mapOverlays.remove(custom2) ;

于 2012-07-11T06:29:30.577 回答
0

大家好,我找到了解决方案......这是因为自定义的定义在 if(CheCked.get(0)) 里面......它应该在 Oncreat()

因为在 if (CheCked.get(0)) 中定义自定义将在每次我们选中复选框时创建一个新自定义,而当我们想要删除它时,第一个自定义会丢失,因为定义了一个新自定义

感谢所有试图提供帮助的人,我真的很感激

于 2012-07-11T10:00:07.517 回答