Android:取消选中按钮点击复选框

时间:2013-01-04 05:09:23

标签: android

我正在尝试清除单击按钮上的复选框的所有复选标记,代码对我来说似乎没问题,但它无法正常工作。复选框处于不同的布局......在我目前的活动中,我正在给复选框充气并执行setChecked(false)(这不起作用)..还有其他方法吗?

Button clearbtn1 = (Button) findViewById(R.id.clearbtn);
        clearbtn1.setOnClickListener(new OnClickListener() {
            @Override

            public void onClick(View v) {



                LayoutInflater inflater_example = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
                View v1= inflater_example.inflate(R.layout.profile, null); 
                CheckBox checkBox = (CheckBox) v1.findViewById(R.id.checkBox1);
                checkBox.setChecked(false); 
        }
        });

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

只需清除常量中的所有复选框状态,然后通知或重置适配器以反映更改。

Button clearbtn1 = (Button) findViewById(R.id.clearbtn);
    clearbtn1.setOnClickListener(new OnClickListener() {
        @Override

        public void onClick(View v) {
          for(int i=0;i < Constants.checkBoxState.length; i++)      
             Constants.checkBoxState[i] = false;

          listAdapter.notifyDataSetChanged();

    }
    });

答案 1 :(得分:1)

您的适配器具有您想要生效的这些视图。标准的OOP原则要求您使用 adapter 方法来实现它。从您的适配器技术判断以及它如何巧妙地对抗convertView以保持复选框状态,我认为该方法是不言而喻的。只需设置确定其状态的boolean标志并刷新适配器。这是一个示例适配器方法,您可以通过按钮调用OnClickListener

private void clearChecks() {
    for (int i = 0; i < Constants.checkBoxState.length; i++) {
        Constants.checkBoxState[i] = false;
    }
    notifyDataSetChanged();
}