在Android中的对话框中选中复选框

时间:2012-07-11 05:25:59

标签: android google-maps android-layout checkbox alertdialog

我正在使用谷歌地图,因此在选中复选框时,一些图片将被添加到图层中,另一个复选框将添加不同的图层...当取消选中第一个复选框时,将删除与其相关的图片以及第二个复选框也会出现同样的问题。现在的问题是,当检查第一个复选框时,添加了图片然后我取消选中相关的复选框,当第二个复选框工作正常时,图片没有被删除? ?请帮忙

我有一个按钮,当我按下它时会显示一个对话框..此对话框包含一个复选框。 。
我在类

中定义了以下变量
     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)  ;
                    }



                }

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

因为在if(CheCked.get(0))中定义自定义将在每次检查复选框时创建一个新自定义,并且当我们要删除它时第一个自定义将丢失,因为已定义了一个新自定义< / p>

感谢所有试图提供帮助的人,我非常感谢