选中已禁用复选框(如果有)

时间:2014-05-22 18:31:49

标签: java android xml checkbox

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

我的应用有一个列表,其中包含一个使用Firebird结果集创建的复选框。

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

我该怎么做?

4 个答案:

答案 0 :(得分:0)

我们可以通过结合setEnabled和setChecked方法知道其属性来禁用检查,如下所示

   private CheckBox termsAndConditions;

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


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

答案 1 :(得分:0)

你的意思是说你想要选中复选框列表之外的复选框,并且列表中的所有复选框都应该被禁用吗?如果未选中主复选框,则启用所有复选框?

要检查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

答案 2 :(得分:0)

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

listView.getChildCount()

因此,您可以使用listView.getChildAt(wantedChild);

循环运行

Antoher的方法是保存您从ResultSet创建的CheckBox对象列表,然后在此之后运行。

答案 3 :(得分:0)

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

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);
  }
}

<强>布局/ 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" />