【发布时间】:2012-07-10 16:21:08
【问题描述】:
我正在使用谷歌地图当检查复选框时,一些图片将添加到图层中,另一个复选框将添加不同的图层...未选中第一个复选框的图片与它相关的图片将被删除,也将被删除第二复选框会发生同样的情况..现在问题是在检查第一个复选框时,添加图片,然后我要取消选中到相关的复选框,而第二个复选框工作不删除图片? ?请帮忙
我有一个按钮,当我按下它时会显示一个对话框。这个对话框包含一个复选框。 .
我在类中定义了以下变量
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) ;
}
}
【问题讨论】:
-
您能否详细说明预期的行为以及您看到的情况?另外,您在哪里填充 AlertDialog 的列表视图?
-
此时我所能提供的只是经典的调试建议。您需要弥合“我期望会发生什么?”之间的差距。和“发生了什么?”为了使两者相同。在这种情况下,期望与现实之间的差距要么是 CheCked.get(0) 总是返回 true,要么 mapOverlays.remove(custom) 没有做你想做的事。你有两件事要检查。首先,您是否进入
mapOverlays.remove(custom)行?进行一些登录。其次,如果该行执行,它会按照您的预期执行吗?添加一个按钮,看看它是否像你期望的那样工作。 -
mapOverlays 是 Android 类类型吗?
-
我还没有解决它...当我检查第一个并取消检查它工作正常时,它会添加图片并将它们删除...第一个复选框,图片不会再次删除..我添加了一个字符串,如果它到达那行代码并且它确实到达但图片没有被删除
-
删除功能正在工作,因为当我检查和取消选中第一个复选框而不触摸第二个复选框时,它会完美地添加和删除图片
标签: android google-maps android-layout checkbox android-alertdialog