- way to detect checkbox checked and unchecked and it result
2. MainActivity.java
package com.com.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.Toast;
public class MainActivity extends AppCompatActivity { private CheckBox checkBox1, checkBox2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout._activitymain_); checkBox1 = findViewById(R.id._checkBox1_); checkBox1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton compoundButton, boolean b) { if(b){ //is checked Toast._makeText_(MainActivity.this, "is checked checkbox1", Toast._LENGTHSHORT_).show(); }else{ //is not checked Toast._makeText_(MainActivity.this, "is not checked checkbox1", Toast._LENGTHSHORT_).show(); } } }); checkBox2 = findViewById(R.id._checkBox2_); checkBox2.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton compoundButton, boolean b) { if(b){ //is checked Toast._makeText_(MainActivity.this, "is checked checkbox2", Toast._LENGTHSHORT_).show(); }else{ //is not checked Toast._makeText_(MainActivity.this, "is not checked checkbox2", Toast._LENGTHSHORT_).show(); } } }); } }
3. activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="//schemas.android.com/apk/res/android" xmlns:app="//schemas.android.com/apk/res-auto" xmlns:tools="//schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity"> <CheckBox android:id="@+id/checkBox1" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Item1" /> <CheckBox android:id="@+id/checkBox2" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Item2" /> </LinearLayout>
4. Result on screen
You are done.
The problem is that Eclipse thinks it's an satView.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) { } } );
1 for a satView.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) { } } );
2 and it doesn't work. How can I fix this?
asked Dec 5, 2011 at 14:31
Roman RdgzRoman Rdgz
12.9k42 gold badges134 silver badges208 bronze badges
You can do this: satView.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) { } } );
primax79
4282 silver badges14 bronze badges
answered Dec 5, 2011 at 14:34
3
you may also go for a simple satView.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) { } } );
3: satView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if(((CompoundButton) view).isChecked()){ System.out.println("Checked"); } else { System.out.println("Un-Checked"); } } });
answered Dec 5, 2011 at 14:39
2
You get the error because you imported wrong package.You should satView.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) { } } );
4
So the callback should be : checkBox.setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) { // Perform logic } });
answered Dec 5, 2011 at 14:41
HuangHuang
4,8123 gold badges21 silver badges20 bronze badges
0
Try this: satView = (CheckBox) findViewById(R.id.sateliteCheckBox); satView.setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if (buttonView.isChecked()) { // checked } else { // not checked } } });
Hope this helps.
Edric
25.3k13 gold badges84 silver badges93 bronze badges
answered Dec 5, 2011 at 14:38
oriolponsoriolpons
1,88312 silver badges20 bronze badges
Translation of the accepted answer by Chris into Kotlin: val checkBox: CheckBox = findViewById(R.id.chk) checkBox.setOnCheckedChangeListener { buttonView, isChecked -> // Code here }
answered Apr 25, 2018 at 13:40
ElletlarElletlar
3,1667 gold badges32 silver badges38 bronze badges
1
try this satView.setOnCheckedChangeListener(new android.widget.CompoundButton.OnCheckedChangeListener.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup group, int checkedId) { if (isChecked){ // perform logic } } });
answered Dec 5, 2011 at 14:35
confuciusconfucius
13.2k10 gold badges49 silver badges66 bronze badges
Change satView.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) { } } );
5 with satView.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) { } } );
6 and then press Ctrl+Shift+O to fix your imports.
answered Dec 5, 2011 at 14:34
SERPROSERPRO
10k8 gold badges47 silver badges63 bronze badges
You could use this code. public class MySampleActivity extends Activity { CheckBox cb1, cb2, cb3, cb4; LinearLayout l1, l2, l3, l4; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); cb1 = (CheckBox) findViewById(R.id.cb1); cb2 = (CheckBox) findViewById(R.id.cb2); cb3 = (CheckBox) findViewById(R.id.cb3); cb4 = (CheckBox) findViewById(R.id.cb4); l1 = (LinearLayout) findViewById(R.id.l1); l2 = (LinearLayout) findViewById(R.id.l2); l3 = (LinearLayout) findViewById(R.id.l3); l4 = (LinearLayout) findViewById(R.id.l4); } @Override protected void onPostCreate(Bundle savedInstanceState) { super.onPostCreate(savedInstanceState); cb1.setOnCheckedChangeListener(new MyCheckedChangeListener(1)); cb1.setOnCheckedChangeListener(new MyCheckedChangeListener(2)); cb1.setOnCheckedChangeListener(new MyCheckedChangeListener(3)); cb1.setOnCheckedChangeListener(new MyCheckedChangeListener(4)); } public class MyCheckedChangeListener implements CompoundButton.OnCheckedChangeListener { int position; public MyCheckedChangeListener(int position) { this.position = position; } private void changeVisibility(LinearLayout layout, boolean isChecked) { if (isChecked) { l1.setVisibility(View.VISIBLE); } else { l1.setVisibility(View.GONE); } } @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { switch (position) { case 1: changeVisibility(l1, isChecked); break; case 2: changeVisibility(l2, isChecked); break; case 3: changeVisibility(l3, isChecked); break; case 4: changeVisibility(l4, isChecked); break; } } } }
answered Aug 7, 2015 at 14:14
Arun ShankarArun Shankar
6121 gold badge5 silver badges16 bronze badges
1 h.chk.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { CheckBox chk=(CheckBox)view; // important line and code work if(chk.isChecked()) { Message.message(a,"Clicked at"+position); } else { Message.message(a,"UnClick"); } } });
Kevin Kopf
13.6k14 gold badges51 silver badges67 bronze badges
answered Aug 20, 2016 at 7:44
1
If you are looking to do this in Kotlin with the interface implementation. class MainActivity: AppCompatActivity(),CompoundButton.OnCheckedChangeListener{ override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val yourCheckBox = findViewById<CheckBox>(R.id.check_box) yourCheckBox.setOnCheckedChangeListener(this) } override fun onCheckedChanged(buttonView: CompoundButton?, isChecked: Boolean) { when(buttonView?.id){ R.id.check_box -> Log.d("Checked: ","$isChecked") } } }
answered Jul 7, 2019 at 3:38
Gastón SaillénGastón Saillén
12.6k5 gold badges69 silver badges79 bronze badges