安卓篱笆

标题: 安卓开发 > 一个小应用 计算器 [打印本页]

作者: 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

publicvoid 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==&#x27;-&#x27;)

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]==&#x27;0&#x27;))

{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==&#x27;.&#x27;)

x++;

if(x==0){

str+=".";

et.setText(str);

}

}

}

});

}

}




欢迎光临 安卓篱笆 (http://www.okapk.cn/) Powered by Discuz! X3.2