如何使用复选框检查条件?

时间:2015-03-20 10:24:31

标签: android android-checkbox

我正在尝试使用json向服务器发送值,我正在尝试的是当我选择复选框时我想发送“Y”,在我的json active = Y是用户激活和停用的状态,以下是代码我尝试了什么,但它没有工作,它总是显示active = N

 proactives=(CheckBox)findViewById(R.id.edt_proactive);
     if(proactives.isChecked()==true)
      {
          proactives.setTag("Y");
      }
      if(proactives.isChecked()==false)
      {
          proactives.setTag("N");
      }

5 个答案:

答案 0 :(得分:1)

您可以使用OnCheckedChangeListener

proactives.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            // change your tag here
        }
    });

答案 1 :(得分:1)

使用CompoundButton.OnCheckedChangeListener

proactives.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

       @Override
       public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {
           // use isChecked value here to react to state changes on your checkbox
       }
   }
);   

答案 2 :(得分:1)

在布局文件中提供onclick

<CheckBox
    android:id="@+id/edt_proactive"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:onClick="itemClicked" />

在您的活动中执行此操作

public void itemClicked(View v) {
    if (((CheckBox) v).isChecked()) {
        proactives.setTag("Y");
    }else{
        proactives.setTag("N");
}

答案 3 :(得分:1)

试试这个

proactives.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
            if(b)
            {
                proactives.setTag("Y");
            }
            if(proactives.isChecked()==false)
            {
                proactives.setTag("N");
            }
        }
    });

OR

proactives.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
              proactives.setTag(b? "Y" : "N"); 
            }
        });

答案 4 :(得分:0)

更快的方式:P

proactives=(CheckBox)findViewById(R.id.edt_proactive);
proactives.setTag(proactives.isChecked() ? "Y" : "N");

编辑:并使用OnCheckedChangeListener作为上述答案提及