【问题标题】:Check box in a dialog in AndroidAndroid中对话框中的复选框
【发布时间】: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


【解决方案1】:

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

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

感谢所有努力帮助的人,我真的很感激

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 但我有不同的习俗,如果我清除它会删除所有这些
    • 只需清除并再次添加您需要根据复选框显示的自定义......
    • 这效率不高...我只想删除我未选中的图层...我认为如果选中第一个复选框,它也会检查它的问题else for the second checkbox ...我想在检查值时将复选框分开
    • 以后我会添加更多图层,因为我不想在我只清除一个图层时重新添加图层
    猜你喜欢
    • 1970-01-01
    • 2011-08-24
    • 2014-02-18
    • 2017-09-14
    • 2012-07-01
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多