【问题标题】:Programatically unchecking items in a dialog on Android以编程方式检查 Android 对话框中的项目
【发布时间】:2011-04-12 08:21:53
【问题描述】:

我在对话框中显示一个带有复选框的列表。该列表看起来像-

Item 1

Item 2

All

每个项目旁边都有一个复选框。现在的要求是—— 如果第 1 项或第 2 项或两者都已选中,并且选择了全部,则应取消选中第 1 项和第 2 项。

为此,我实现了 DialogInterface.OnMultiChoiceClickListener 的 onClick 监听器。

public void onClick(DialogInterface dialog, int which, boolean isChecked)
{
  if(which == 2 && isChecked)
  {
    ((AlertDialog)dialog).getListView().setItemChecked(0, false);
    ((AlertDialog)dialog).getListView().setItemChecked(1, false);
  }
}

但这不起作用。我什至尝试通过调用 Invalidate() 和 InvalidateViews() 来使列表视图无效,但没有成功。

任何帮助将不胜感激。

谢谢,

阿克谢

【问题讨论】:

  • 您确定 if 语句中的代码已运行吗?如果没有,您可以通过Log 或调试来查找。
  • 谢谢!是的,我确信代码会执行。

标签: android dialog


【解决方案1】:

如果我理解正确,复选框在列表中。有一个相反情况的问题:试图取消选中所有框。解决方案似乎是调用

adapter.notifyDataSetChanged()

这是该问题的链接:Uncheck all checkboxes in a custom ListView

编辑:好的,我会再试一次 :-) 发现另一个问题:android: Refresh ListView using ListAdapter and SimpleCursorAdapter希望这会有所帮助! :-)

【讨论】:

  • 谢谢 pecka85!是的,复选框在一个列表中,在一个对话框中。但是对话框的适配器是一个没有方法 notifyDataSetChanged 的​​ ListAdapter。该方法由 ArrayAdapter 提供。
  • 非常感谢 Pecka85!我也期待这能奏效,但事实并非如此。我确信这与对话框中的列表有关。感谢您的尝试!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-10
  • 2011-02-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-22
相关资源
最近更新 更多