Android-CheckBox 实现计算器
源码下载地址:http://download.csdn.net/detail/wu20093346/7718055
使用CheckBox的OnCheckedChangeListener做事件触发,效果图:
list=new OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
// TODO Auto-generated method 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);
如代码所写。每当用户又一次输入数字后。就会激发文本框的onKey事件,让全部的CheckBox变成不选中状态。
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.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);
依据选择的checkbox返回计算结果,假设uncheck将清空文本,选择checkbox之前必需要输入两个数字。
所有代码:
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 mTextView3;
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); //加減乘除
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 method 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.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); }
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;
} public void Confirm()
{
new AlertDialog.Builder(CheckBoxCalc.this)
.setTitle("alert")
.setMessage("can not be null")
.setPositiveButton("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().toString().length()>0)
{
isbool= true;
}
else
{
isbool=false;
}
return isbool;
} }
Android-CheckBox 实现计算器的更多相关文章
- xamarin android checkbox自定义样式
xamarin android checkbox自定义样式 在drawable文件在新建checkbox_bg.xml文件 <?xml version="1.0" encod ...
- android CheckBox控件的定义及事件监听
http://www.beijibear.com/index.php?aid=336 android CheckBox控件的定义及事件监听,本例实现CheckBox控件的定义及点击事件的监听并显示结果 ...
- 菜鸟学Android编程——简单计算器《一》
菜鸟瞎搞,高手莫进 本人菜鸟一枚,最近在学Android编程,网上看了一些视频教程,于是想着平时手机上的计算器应该很简单,自己何不尝试着做一个呢? 于是就冒冒失失的开撸了. 简单计算器嘛,功能当然很少 ...
- android CheckBox的运用
CheckBox定义一个同意协议的按钮,只要同意button才可以点击 XML代码 <CheckBox android:id="@+id/checkbox1" android ...
- Android checkbox 自定义点击效果
安卓默认的效果 自定义后的效果 前面的图片当然可以自己修改. 实现这个效果的步骤如下 1.建立 一个selector 的xml <?xml ver ...
- Android Checkbox Example
1. Custom String 打开 “res/values/strings.xml” 文件, File : res/values/strings.xml <?xml version=&quo ...
- Android开发之计算器(一)界面设计
计算器开发主要涉及到LinearLayout布局.EditText.Button的使用.为android入门基础内容. 打开android studio选择创建一个新的工程,应用程序的名称为Calcu ...
- Android checkBox
checkBox 状态:选中(true),未选中(false) 属性: checked="true/false"; private Chec ...
- Android checkbox和radiobutton 以及Toast和AlertDialog的使用
package com.example.radiobutton_01; import android.app.Activity; import android.os.Bundle; import an ...
- android CheckBox RadioButton 照片和文字的间距问题
利用自身的定义CheckBox 要么RadioButton时间.定义自己的图标和文字在不同的手机显示不同的音高.有时不太好控制,下面是我自己的定义CheckBox: 在Layout在下面xml: &l ...
随机推荐
- 【Henu ACM Round#20 C】 Eevee
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 处理处所有的字符串可能的样子. 存在map里面就好. [代码] #include <bits/stdc++.h> usi ...
- Myeclipse学习总结(4)——Eclipse常用开发插件
(1) AmaterasUML 介绍:Eclipse的UML插件,支持UML活动图,class图,sequence图,usecase图等:支持与Java class/interf ...
- 国庆 day 3 下午
a[问题描述] 你是能看到第一题的 friends 呢. ——hja 给你一个只有小括号和中括号和大括号的括号序列,问该序列是否合法.[输入格式] 一行一个括号序列.[输出格式] 如果合法,输出 OK ...
- Android View体系(十)自定义组合控件
相关文章 Android View体系(一)视图坐标系 Android View体系(二)实现View滑动的六种方法 Android View体系(三)属性动画 Android View体系(四)从源 ...
- HDU 5889 Barricade (Dijkstra+Dinic)
思路: 首先 先Dijkstra一遍 找出来最短路 不是最短路上的边都不要 然后呢 套个Dinic模板就好了-- 求个最小割 输出 大功告成~~ //By SiriusRen #include < ...
- xfce4 + docky ,docky 上面那透明的一条黑色横线去掉方法
在安装完Debian 9 + xfce4桌面后 ,添加docky启动后,会在docky 上面有一条黑色横线看起来非常不舒服. 去掉方法:设置管理器->窗口管理器微调->合成器->取消 ...
- DotNetCore2.1 下Docker使用的学习
[环节1:CentOS 安装Docker] Step1:通过 uname -r 命令查看你当前的内核版本 uname -r Step2:使用 root 权限登录 Centos.确保 yum 包更新到最 ...
- Linux下java/bin目录下的命令集合
Linux下JAVA命令(1.7.0_79) 命令 详解 参数列表 示例 重要程度 资料 appletviewer Java applet 浏览器.appletviewer 命令可在脱离万维网浏览器环 ...
- IBM将收购Linux发行商红帽公司,继续发力云计算市场
10月29日凌晨消息,IBM和Red Hat当地时间星期日联合宣布,IBM将以340亿美元收购红帽公司(Red Hat).根据两家公司发表的一份联合声明,IBM将以每股190美元的价格,以现金方式收购 ...
- 【Uva 1336】Fixing the Great Wall
[Link]: [Description] 给你长城上的n个修补点,然后你的位置为x; 你需要依次去这n个点,然后把它们全部修好. 但是修的前后顺序不一样的话,花费不一样. 如果立即把第i个点修好的话 ...