【问题标题】:Disabled checkbox if any is checked如果选中任何复选框,则禁用复选框
【发布时间】:2014-07-11 22:49:04
【问题描述】:

我在 Android/Eclipse 中的应用有问题。

我的应用有一个带有复选框的列表,该复选框是使用来自Firebird 的结果集创建的。

我需要在选中一个复选框时设置启用/假,但我不知道如何设置。

我该怎么做?

【问题讨论】:

  • 改用RadioGroup 类。此类用于为一组单选按钮创建多重排除范围。选中一个属于单选组的单选按钮会取消选中同一组中任何先前选中的单选按钮。
  • 但是,我正在以编程方式创建复选框,并在 firebird 中使用 SELECT 的结果集。我如何设置为只有 1 个复选框可以检查。
  • 你有多少个复选框?他们在ListView 中吗?
  • 是的,我不知道复选框的数量,原因是我的数据库中选择的结果集。他们在列表视图中的复选框
  • 我的回答对你有帮助吗?

标签: java android xml checkbox


【解决方案1】:

我们可以通过了解它的属性以及下面的 setEnabled 和 setChecked 方法来禁用检查

   private CheckBox termsAndConditions;

  termsAndConditions= (CheckBox) findViewById(R.id.checkBox1);


     termsAndConditions.setEnabled(false); // disable checkbox
     termsAndConditions.setChecked(true);

【讨论】:

  • 问题,复选框是一个结果集,我在不知道总数的情况下创建。我的问题是,当我选中一个复选框时,所有其他复选框都将启用设置为 false。只有一个人可以检查。
  • 循环结果集并为每个结果集设置 false。
【解决方案2】:

您的意思是说您希望选择复选框列表之外的复选框,并且列表内的所有复选框都应该被禁用?而当主复选框不勾选时,所有的复选框都被启用?

要检查 Android 的 XML 布局文件中的复选框,您可以这样做:

<CheckBox
    android:id="@+id/my_checkbox"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:checked="true"/>

此外,您可以参考此复选框并以编程方式执行此操作:

CheckBox checkBox = (CheckBox)getActivity().findViewById(R.id.my_checkbox);
checkBox.setChecked(true);     //Check the check box
checkBox.setEnabled(false);    //Disable the check box

【讨论】:

  • 问题,复选框是一个结果集,我在不知道总数的情况下创建。我的问题是,当我选中一个复选框时,所有其他复选框都将启用设置为 false。只有一个人可以检查。
【解决方案3】:

如果它们在列表视图中,您可以获取它们:

listView.getChildCount()

所以你可以循环运行并使用listView.getChildAt(wantedChild);

另一种方法是保存您从 ResultSet 创建的 CheckBox 对象列表,然后在其上运行。

【讨论】:

    【解决方案4】:

    这很简单。您应该在ListView 上使用CHOICE_MODE_SINGLE 参数调用setChoiceMode 方法。请参阅下面的示例。

    public class MyChecklist extends ListActivity {
      private static final String[] items={"one", "two", "three", "four", "five", "six"};
    
      @Override
      public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_multiple_choice, items));
        getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);
      }
    }
    

    layout/main.xml

    <?xml version="1.0" encoding="utf-8"?>
    <ListView xmlns:android="http://schemas.android.com/apk/res/android"
      android:id="@android:id/list"
      android:layout_width="match_parent" 
      android:layout_height="match_parent"
      android:drawSelectorOnTop="false"
      android:choiceMode="multipleChoice" />
    

    【讨论】:

      猜你喜欢
      • 2015-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-19
      • 1970-01-01
      • 2020-06-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多