安卓篱笆
标题:
安卓开发 > 一个小应用 计算器
[打印本页]
作者:
GuiTarvvm2098
时间:
2017-11-30 04:23
标题:
安卓开发 > 一个小应用 计算器
硬件环境:微机系列,内存为1G以上;软件环境:Microsoft Windows XP,Android;软件:Eclipse+SDK+ADT。语言:JAVA。
很多人对安卓开发有浓厚的兴趣,可是无从下手;上面所提到的就是开发工具,可自己在网上下载研究,了解软件。
[attach]402[/attach]
[attach]403[/attach]
[attach]404[/attach]
计算器的开发:1.布局:采用线性布局,主要用来设计软件的大小、位置、颜色等,来控制软件的外观,文本框设置为不可编写,然后添加数字和符号按钮。
2.功能的实现;(加法为例)
fuhao[0].setOnClickListener(
new
View.OnClickListener() {
@Override
public
void
onClick(View v) {
//
TODO
Auto-generated method stub
if
(str!=""){
if
(vi==fuhao[0]||vi==fuhao[1]||vi==fuhao[2]||vi==fuhao[3]){
c=1;
}
else
{
g=Double.parseDouble(str);
calculater();
str=""+f;
et.setText(str);
c=1;
flag=1;
vi=v;
}}
}
});
将屏幕上面str赋值给g,由g赋值给f,最后由f 赋值给b,运行加法,输入第二个数,赋值给g,运算,将结果赋值给str,输出str数值到屏幕上,flag=1。编辑框里结果转为double数赋值给g,然后调用计算方法calculate,这时的c=0,f=g,b=f(b保存起来,即第一个数保存起来),返回f到加法程序,显示f,这时c=1,等着按下下一个数。
功能程序:(不包括界面设计)
package com.example.jmic;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends Activity {
String str="";
EditText et;
int c=0,flag=0;
double b=0.0,g=0.0,f=0.0;
View vi;
public boolean onCreateOptionsMenu1(Menu menu){
menu.add(0,1,1,"退出");
return super.onCreateOptionsMenu(menu);
}
public boolean onCreateOptionsMenu(MenuItem item) {
// Inflate the menu; this adds items to the action bar if it is present.
if(item.getItemId()==1){finish();}
return super.onOptionsItemSelected(item);
}
//计算方法
public double calculater(){
switch(c){
case 0:f=g;break;
case 1:f=b+g;break;
case 2:f=b-g;break;
case 3:f=b*g;break;
case 4:f=b/g;break;
}
b=f;
c=0;
return f;
}
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//获得按键
final Button number[]=new Button[10];
final Button fuhao[]=new Button[14];
fuhao[0]=(Button)findViewById(R.id.button01);//加法
fuhao[1]=(Button)findViewById(R.id.button02);//减法
fuhao[2]=(Button)findViewById(R.id.button03);//乘法
fuhao[3]=(Button)findViewById(R.id.button04);//除法
fuhao[4]=(Button)findViewById(R.id.button05);//等于button05
fuhao[5]=(Button)findViewById(R.id.button06);//小数点
fuhao[6]=(Button)findViewById(R.id.buttonc);//删除
fuhao[7]=(Button)findViewById(R.id.zheng);//正负号zheng
fuhao[8]=(Button)findViewById(R.id.kaifang);//开方
fuhao[9]=(Button)findViewById(R.id.pingfang);//平方
fuhao[10]=(Button)findViewById(R.id.tuige);//退格
fuhao[11]=(Button)findViewById(R.id.lifang );//立方lifang
fuhao[12]=(Button)findViewById(R.id.logshi);//log10...logshi
fuhao[13]=(Button)findViewById(R.id.duihuan);//美元兑换...duihuan
number[0]=(Button)findViewById(R.id.button0);
number[1]=(Button)findViewById(R.id.button1);
number[2]=(Button)findViewById(R.id.button2);
number[3]=(Button)findViewById(R.id.button3);
number[4]=(Button)findViewById(R.id.button4);
number[5]=(Button)findViewById(R.id.button5);
number[6]=(Button)findViewById(R.id.button6);
number[7]=(Button)findViewById(R.id.button7);
number[8]=(Button)findViewById(R.id.button8);
number[9]=(Button)findViewById(R.id.button9);
et=(EditText)findViewById(R.id.textView1);
et.setText(str);
fuhao[6].setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
b=0.0;c=0;g=0.0;
str="";
et.setText(str);
}
});
fuhao[10].setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(str!=""){
char ch[]=str.toCharArray();
String string="";
for(int i=0;i<ch.length-1;i++){
string+=ch
;
}
et.setText(string);
str=string;
}
}
});
fuhao[7].setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(vi!=fuhao[5]&&str!=""){
char ch=str.charAt(0);
if(ch=='-')
str=str.replace("-", "");
else
str="-"+str;
et.setText(str);
}
}
});
fuhao[8].setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(str!=""){
double a=Double.parseDouble(str);
str=Math.sqrt(a)+"";
et.setText(str);
}
}
});
fuhao[9].setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(str!=""){
double a=Double.parseDouble(str);
str=""+a*a;
et.setText(str);
}
}
});
fuhao[11].setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(str!=""){
double a=Double.parseDouble(str);
str=""+a*a*a;
et.setText(str);
}
}
});
fuhao[12].setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(str!=""){
double a=Double.parseDouble(str);
if(a>0){
str=Math.log10(a)+"";
et.setText(str);
}else{
String string="输入大于0的数";
et.setText(string);
str="";
}}
}
});
fuhao[13].setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(str!=""){
double a=Double.parseDouble(str);
String string=str+"RMB = "+a/6.95+"$";
et.setText(string);
str="";
}
}
});
//设定数字
number[0].setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(flag==1){
str="";
str+=0;
et.setText(str);
flag=0;
}
else{
char ch1[];
ch1=str.toCharArray();
if(!(ch1.length==1&&ch1[0]=='0'))
{str+=0;
et.setText(str);}
}
vi=v;
}
});
number[1].setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(flag==1){
str="";
str+=1;
et.setText(str);
flag=0;
}
else{
str+=1;
et.setText(str);
}
vi=v;
}
});
number[2].setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(flag==1){
str="";
str+=2;
et.setText(str);
flag=0;
}
else{
str+=2;
et.setText(str);
}
vi=v;
}
});
number[3].setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(flag==1){
str="";
str+=3;
et.setText(str);
flag=0;
}
else{
str+=3;
et.setText(str);
}
vi=v;
}
});
number[4].setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(flag==1){
str="";
str+=4;
et.setText(str);
flag=0;
}
else{
str+=4;
et.setText(str);
}
vi=v;
}
});
number[5].setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(flag==1){
str="";
str+=5;
et.setText(str);
flag=0;
}
else{
str+=5;
et.setText(str);
}
vi=v;
}
});
number[6].setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(flag==1){
str="";
str+=6;
et.setText(str);
flag=0;
}
else{
str+=6;
et.setText(str);
}
vi=v;
}
});
number[7].setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(flag==1){
str="";
str+=7;
et.setText(str);
flag=0;
}
else{
str+=7;
et.setText(str);
}
vi=v;
}
});
number[8].setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(flag==1){
str="";
str+=8;
et.setText(str);
flag=0;
}
else{
str+=8;
et.setText(str);
}
vi=v;
}
});
number[9].setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(flag==1){
str="";
str+=9;
et.setText(str);
flag=0;
}
else{
str+=9;
et.setText(str);
}
vi=v;
}
});
//设定符号键
//加
fuhao[0].setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(str!=""){
if(vi==fuhao[0]||vi==fuhao[1]||vi==fuhao[2]||vi==fuhao[3]){
c=1;
}
else{
g=Double.parseDouble(str);
calculater();
str=""+f;
et.setText(str);
c=1;
flag=1;
vi=v;
}}
}
});
//减
fuhao[1].setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(str!=""){
if(vi==fuhao[0]||vi==fuhao[1]||vi==fuhao[2]||vi==fuhao[3]){
c=2;
}
else{
g=Double.parseDouble(str);
calculater();
str=""+f;
et.setText(str);
c=2;
flag=1;
vi=v;
}}
}
});
//乘
fuhao[2].setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(str!=""){
if(vi==fuhao[0]||vi==fuhao[1]||vi==fuhao[2]||vi==fuhao[3]){
c=3;
}
else{
g=Double.parseDouble(str);
calculater();
str=""+f;
et.setText(str);
c=3;
flag=1;
vi=v;
}}
}
});
//除
fuhao[3].setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(str!=""){
if(vi==fuhao[0]||vi==fuhao[1]||vi==fuhao[2]||vi==fuhao[3]){
c=4;
}
else{
g=Double.parseDouble(str);
calculater();
str=""+f;
et.setText(str);
c=4;
flag=1;
vi=v;
}}
}
});
//等于
fuhao[4].setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(str!=""&&vi!=fuhao[1]&&vi!=fuhao[2]&&vi!=fuhao[3]){
g=Double.parseDouble(str);
calculater();
str=""+f;
et.setText(str);
flag=1;
vi=v;
}
}
});
//小数点
fuhao[5].setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(str==""){
str+=".";
}
else{
char ch1[];int x=0;
ch1=str.toCharArray();
for(int i=0;i<ch1.length;i++)
if(ch1
=='.')
x++;
if(x==0){
str+=".";
et.setText(str);
}
}
}
});
}
}
欢迎光临 安卓篱笆 (http://www.okapk.cn/)
Powered by Discuz! X3.2