Source code: http://download.csdn.net/detail/wu20093346/7718055
Use the checkbox's Oncheckedchangelistener to do event triggering:
List=new Onkeylistener () {@Override public boolean onKey (View v, int keycode, keyevent event) {//TODO auto-generated Me Thod stub if (Mbox1.ischecked ()) { mbox1.setchecked (false);} if (mbox2.ischecked ()) { mbox2.setchecked (false);} if (mbox3.ischecked ()) { mbox3.setchecked (false);} if (mbox4.ischecked ()) { mbox4.setchecked (false);} return false; } }; Medittext.setonkeylistener (list); Medittext1.setonkeylistener (list);
As the code writes, each time the user re-enters a number, the OnKey event of the text box is fired, making all the checkboxes unchecked.
Listner=new Oncheckedchangelistener () {@Override public void oncheckedchanged (Compoundbutton Buttonview, Boolean isChecked) {//TODO auto-generated Method Stub switch (Buttonview.getid ()) {Case r.id.plus:if (!isempty (Medittext,meditt EXT1) {Confirm (); mbox1.setchecked (false); return;} break; Case R.id.cut:if (!isempty (MEDITTEXT,MEDITTEXT1)) {Confirm (); mbox2.setchecked (false); return;} break; Case R.id.ride:if (!isempty (MEDITTEXT,MEDITTEXT1)) {Confirm (); mbox3.setchecked (false); return;} break; Case R.id.except:if (!isempty (MEDITTEXT,MEDITTEXT1)) {Confirm (); mbox4.setchecked (false); return;} break; Default:break; } if (mbox1.ischecked ()) {Mtextview.settext (getoperation ("+"));} else {Mtextview.settext ("");} if (mbox2.ischecked ()) {Mtextview2.settext (Getoperation ("-"));} else{Mtextview2.settext ("");} if (mbox3.ischecked ()) {Mtextview3.settext (Getoperation ("*"));} else {Mtextview3.settext ("");} if (mbox4.ischecked ()) {Mtextview4.settext (Getoperation ("/"));} else {MTExtview4.settext ("");}}; Mbox1.setoncheckedchangelistener (Listner); Mbox2.setoncheckedchangelistener (Listner); Mbox3.setoncheckedchangelistener (Listner); Mbox4.setoncheckedchangelistener (Listner);
Returns the result of the calculation based on the selected CheckBox, and if uncheck clears the text, you must enter a two number before selecting the checkbox.
All code:
Package Cn.terry;import android.app.Activity; Import Android.app.AlertDialog; Import Android.content.DialogInterface; Import Android.os.Bundle; Import android.view.KeyEvent; Import Android.view.View; Import Android.view.View.OnKeyListener; Import android.widget.*; Import Android.widget.CompoundButton.OnCheckedChangeListener; public class Checkboxcalc extends Activity {private TextView mtextview; private TextView mTextView2; private TextView MTe XTVIEW3; Private TextView mTextView4; Private CheckBox MBox1; Private CheckBox MBox2; Private CheckBox MBox3; Private CheckBox mBox4; Private EditText Medittext; Private EditText MEditText1; Private Boolean isbool=true; Private Oncheckedchangelistener Listner; Private Float Temp; Private String experssion; Private Onkeylistener list; /** called when the activity is first created. */@Override public void OnCreate (Bundle savedinstancestate) {super.oncreate (savedinstancestate); Setcontentview ( R.layout.main); mtextview= (TextView) Findviewbyid (R.ID.RESULT1); Mtextview2= (TextView) Findviewbyid (R.ID.RESULT2); mtextview3= (TextView) Findviewbyid (R.ID.RESULT3); mtextview4= (TextView) Findviewbyid (R.ID.RESULT4); mbox1= (CheckBox) Findviewbyid (R.id.plus); Plus minus multiplication mbox2= (CheckBox) Findviewbyid (r.id.cut); mbox3= (CheckBox) Findviewbyid (r.id.ride); mbox4= (CheckBox) Findviewbyid (r.id.except); medittext= (EditText) Findviewbyid (R.id.first); medittext1= (EditText) Findviewbyid (R.id.second); List=new Onkeylistener () {@Override public boolean onKey (View v, int keycode, keyevent event) {//TODO auto-generated m Ethod stub if (mbox1.ischecked ()) {mbox1.setchecked (false);} if (mbox2.ischecked ()) {mbox2.setchecked (false);} if (mbox3.ischecked ()) {mbox3.setchecked (false);} if (mbox4.ischecked ()) {mbox4.setchecked (false);} return false; } }; Medittext.setonkeylistener (list); Medittext1.setonkeylistener (list); Listner=new Oncheckedchangelistener () {@Override public void oncheckedchanged (Compoundbutton Buttonview, Boolean isChecked) {//TODO Auto-geneRated method Stub switch (Buttonview.getid ()) {Case r.id.plus:if (!isempty (MEDITTEXT,MEDITTEXT1)) {Confirm (); mbox1.set Checked (FALSE); Return } break; Case R.id.cut:if (!isempty (MEDITTEXT,MEDITTEXT1)) {Confirm (); mbox2.setchecked (false); return;} break; Case R.id.ride:if (!isempty (MEDITTEXT,MEDITTEXT1)) {Confirm (); mbox3.setchecked (false); return;} break; Case R.id.except:if (!isempty (MEDITTEXT,MEDITTEXT1)) {Confirm (); mbox4.setchecked (false); return;} break; Default:break; } if (mbox1.ischecked ()) {Mtextview.settext (getoperation ("+"));} else {Mtextview.settext ("");} if (mbox2.ischecked ()) {Mtextview2.settext (Getoperation ("-"));} else {Mtextview2.settext ("");} if (mbox3.ischecked ()) {Mtextview3.settext (Getoperation ("*"));} else {Mtextview3.settext ("");} if (mbox4.ischecked ()) {Mtextview4.settext (Getoperation ("/"));} else {Mtextview4.settext ("");}}; Mbox1.setoncheckedchangelistener (Listner); Mbox2.setoncheckedchangelistener (Listner); Mbox3.setoncheckedchangelisTener (Listner); Mbox4.setoncheckedchangelistener (Listner); public string Getoperation (string operation) {if (operation== "+") {Temp=float.parsefloat (Medittext.gettext ()). ToString ()) + Float.parsefloat (Medittext1.gettext (). ToString ()); }if (operation== "-") {Temp=float.parsefloat (Medittext.gettext (). toString ())-Float.parsefloat (Medittext1.gettext ( ). ToString ()); } if (operation== "*") {temp=float.parsefloat (Medittext.gettext (). toString ()) * Float.parsefloat (Medittext1.gettext ( ). ToString ()); } if (operation== "/") {Temp=float.parsefloat (Medittext.gettext (). toString ())/Float.parsefloat (Medittext1.gettext ( ). ToString ()); } experssion=medittext.gettext (). ToString () +operation+medittext1.gettext (). ToString () + "=" +temp.tostring (); return experssion; The public void Confirm () {new Alertdialog.builder (checkboxcalc.this). Settitle ("alert"). Setmessage ("Can is not null"). SE Tpositivebutton ("OK", new Dialoginterface.onclicklistener () {@Override public void OnClick (dialoginterface dialog, int which) {//TODO auto-generated Method stub}}). Create (). Show (); public boolean isEmpty (EditText e,edittext a) {if (E.gettext (). toString (). Length () >0 && a.gettext (). Tostri Ng (). Length () >0) {isbool= true; } else {isbool=false; } return Isbool; } }