Android- 第一个Android 计算器程序

来源:互联网 发布:大数据分析系统翻译 编辑:程序博客网 时间:2024/04/30 09:18
</pre><pre name="code" class="java"><pre name="code" class="java">这是Activity.Java文件

</pre><pre name="code" class="java"><pre name="code" class="java">package com.example.mycalculator;import android.support.v7.app.ActionBarActivity;import android.annotation.SuppressLint;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;@SuppressLint({ "NewApi", "ShowToast" })@SuppressWarnings("deprecation")public class MainActivity extends ActionBarActivity {    private Button num0,num1,num2,num3,num4,num5,num6,num7,num8,num9,add,sub,mul,div,demo,eql,clean;    public double number1,number2,sum;    public String string,yunsuan;    public EditText editText;        boolean EquBtnDownFlag=false;    int BtnFlag = 0;    public double numberTemp;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);        num0=(Button)this.findViewById(R.id.num0);        num1=(Button)this.findViewById(R.id.num1);        num2=(Button)this.findViewById(R.id.num2);        num3=(Button)this.findViewById(R.id.num3);        num4=(Button)this.findViewById(R.id.num4);        num5=(Button)this.findViewById(R.id.num5);        num6=(Button)this.findViewById(R.id.num6);        num7=(Button)this.findViewById(R.id.num7);        num8=(Button)this.findViewById(R.id.num8);        num9=(Button)this.findViewById(R.id.num9);        add =(Button)this.findViewById(R.id.add);        sub =(Button)this.findViewById(R.id.sub);        div =(Button)this.findViewById(R.id.div);        mul =(Button)this.findViewById(R.id.mul);        demo=(Button)this.findViewById(R.id.demo);        eql =(Button)this.findViewById(R.id.eql);        clean=(Button)this.findViewById(R.id.clean);        editText = (EditText)this.findViewById(R.id.edittext);                num0.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stub                if (EquBtnDownFlag) {                      editText.setText(null);                      EquBtnDownFlag=false;                  }string =editText.getText().toString()+"0";editText.setText(string);}});                num1.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stub                if (EquBtnDownFlag) {                      editText.setText(null);                      EquBtnDownFlag=false;                  }string =editText.getText().toString()+"1";editText.setText(string);}});        num2.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stub                if (EquBtnDownFlag) {                      editText.setText(null);                      EquBtnDownFlag=false;                  }string =editText.getText().toString()+"2";editText.setText(string);}});        num3.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stub                if (EquBtnDownFlag) {                      editText.setText(null);                      EquBtnDownFlag=false;                  }string =editText.getText().toString()+"3";editText.setText(string);}});        num4.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stub                if (EquBtnDownFlag) {                      editText.setText(null);                      EquBtnDownFlag=false;                  }string =editText.getText().toString()+"4";editText.setText(string);}});        num5.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stub                if (EquBtnDownFlag) {                      editText.setText(null);                      EquBtnDownFlag=false;                  }string =editText.getText().toString()+"5";editText.setText(string);}});        num6.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stub                if (EquBtnDownFlag) {                      editText.setText(null);                      EquBtnDownFlag=false;                  }string =editText.getText().toString()+"6";editText.setText(string);}});                num7.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stub                if (EquBtnDownFlag) {                      editText.setText(null);                      EquBtnDownFlag=false;                  }string =editText.getText().toString()+"7";editText.setText(string);}});                num8.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stub                if (EquBtnDownFlag) {                      editText.setText(null);                      EquBtnDownFlag=false;                  }string =editText.getText().toString()+"8";editText.setText(string);}});                num9.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stub                if (EquBtnDownFlag) {                      editText.setText(null);                      EquBtnDownFlag=false;                  }string =editText.getText().toString()+"9";editText.setText(string);}});                add.setOnClickListener(new View.OnClickListener() {public void onClick(View v) {if(BtnFlag==0){number1=Double.parseDouble(editText.getText().toString());}else {string=editText.getText().toString();numberTemp=Double.parseDouble(string);switch (yunsuan){case "+":number1=number1+numberTemp;break;case "-":number1=number1-numberTemp;break;case "X":number1=number1*numberTemp;break;case "/":number1=number1/numberTemp;break;}string = ""+number1;}BtnFlag = 1;yunsuan = "+";editText.setText("");}});        sub.setOnClickListener(new View.OnClickListener() {public void onClick(View v) {if(BtnFlag==0){number1=Double.parseDouble(editText.getText().toString());}else {string=editText.getText().toString();numberTemp=Double.parseDouble(string);switch (yunsuan){case "+":number1=number1+numberTemp;break;case "-":number1=number1-numberTemp;break;case "X":number1=number1*numberTemp;break;case "/":number1=number1/numberTemp;break;}string = ""+number1;}BtnFlag = 1;yunsuan="-";editText.setText("");}});        mul.setOnClickListener(new View.OnClickListener() {public void onClick(View v) {if(BtnFlag==0){number1=Double.parseDouble(editText.getText().toString());}else {string=editText.getText().toString();numberTemp=Double.parseDouble(string);switch (yunsuan){case "+":number1=number1+numberTemp;break;case "-":number1=number1-numberTemp;break;case "X":number1=number1*numberTemp;break;case "/":number1=number1/numberTemp;break;}string = ""+number1;}BtnFlag = 1;yunsuan="X";editText.setText("");}});        div.setOnClickListener(new View.OnClickListener() {public void onClick(View v) {if(BtnFlag==0){number1=Double.parseDouble(editText.getText().toString());}else {string=editText.getText().toString();numberTemp=Double.parseDouble(string);switch (yunsuan){case "+":number1=number1+numberTemp;break;case "-":number1=number1-numberTemp;break;case "X":number1=number1*numberTemp;break;case "/":number1=number1/numberTemp;break;}string = ""+number1;}BtnFlag = 1;yunsuan="/";editText.setText("");}});        demo.setOnClickListener(new View.OnClickListener() {public void onClick(View v) {string=editText.getText().toString()+".";editText.setText(string);}});                clean.setOnClickListener(new View.OnClickListener() {    public void onClick(View v) {    string="";    yunsuan="";    number1=0;    number2=0;    editText.setText(string);    }    });        eql.setOnClickListener(new View.OnClickListener() {public void onClick(View v) {string=editText.getText().toString();number2=Double.parseDouble(string);switch (yunsuan){case "+":sum=number1+number2;string=number1+"+"+number2+"=";editText.setText(string+sum);break;case "-":sum=number1-number2;string=number1+"-"+number2+"=";editText.setText(string+sum);break;case "X":sum=number1*number2;string=number1+"X"+number2+"=";editText.setText(string+sum);break;case "/":sum=number1/number2;string=number1+"/"+number2+"=";editText.setText(string+sum);break;}EquBtnDownFlag=true;BtnFlag=0;}});       }@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);menu.add(0, 1, 1, R.string.exit);//添加一个退出menu.add(0, 2, 2, R.string.about);//再添加一个return super.onCreateOptionsMenu(menu);}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {// Handle action bar item clicks here. The action bar will// automatically handle clicks on the Home/Up button, so long// as you specify a parent activity in AndroidManifest.xml.int id = item.getItemId();if (id == R.id.action_settings) {return true;}if(item.getItemId()==1){finish();}if(item.getItemId()==2){Toast.makeText(MainActivity.this, R.string.about, 1).show();}return super.onOptionsItemSelected(item);}}
</pre><pre name="code" class="java">

layout的布局文件摆放


<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    ><EditText android:layout_width="fill_parent" android:layout_height="wrap_content"  android:id="@+id/edittext" android:hint="@string/input"/><RelativeLayout    android:orientation="vertical"    android:layout_width="fill_parent"    android:layout_height="fill_parent">    <!-- 1-9 Button --><Buttonandroid:layout_height="wrap_content" android:layout_width="70dp"android:layout_marginTop="5dp"android:layout_marginRight="5dp"android:layout_marginLeft="5dp"android:id="@+id/num1"android:background="@drawable/button"android:text="@string/num1"/><Buttonandroid:layout_height="wrap_content" android:layout_width="70dp"android:layout_marginTop="5dp"android:layout_marginRight="5dp"android:layout_marginLeft="5dp"android:id="@+id/num2"android:layout_toRightOf="@id/num1"android:background="@drawable/button"android:text="@string/num2"/><Buttonandroid:layout_height="wrap_content" android:layout_width="70dp"android:layout_marginTop="5dp"android:layout_marginRight="5dp"android:layout_marginLeft="5dp"android:id="@+id/num3"android:layout_toRightOf="@id/num2"android:background="@drawable/button"android:text="@string/num3"/><Buttonandroid:layout_height="wrap_content" android:layout_width="70dp"android:layout_marginTop="5dp"android:layout_marginRight="5dp"android:layout_marginLeft="5dp"android:id="@+id/num4"android:layout_below="@id/num1"android:background="@drawable/button"android:text="@string/num4"/><Buttonandroid:layout_height="wrap_content" android:layout_width="70dp"android:layout_marginTop="5dp"android:layout_marginRight="5dp"android:layout_marginLeft="5dp"android:id="@+id/num5"android:layout_below="@id/num2"android:layout_toRightOf="@id/num4"android:background="@drawable/button"android:text="@string/num5"/><Buttonandroid:layout_height="wrap_content" android:layout_width="70dp"android:layout_marginTop="5dp"android:layout_marginRight="5dp"android:layout_marginLeft="5dp"android:id="@+id/num6"android:layout_below="@id/num3"android:layout_toRightOf="@id/num5"android:background="@drawable/button"android:text="@string/num6"/><Buttonandroid:layout_height="wrap_content" android:layout_width="70dp"android:layout_marginTop="5dp"android:layout_marginRight="5dp"android:layout_marginLeft="5dp"android:id="@+id/num7"android:layout_below="@id/num4"android:background="@drawable/button"android:text="@string/num7"/><Buttonandroid:layout_height="wrap_content" android:layout_width="70dp"android:layout_marginTop="5dp"android:layout_marginRight="5dp"android:layout_marginLeft="5dp"android:id="@+id/num8"android:layout_below="@id/num5"android:layout_toRightOf="@id/num7"android:background="@drawable/button"android:text="@string/num8"/><Buttonandroid:layout_height="wrap_content" android:layout_width="70dp"android:layout_marginTop="5dp"android:layout_marginRight="5dp"android:layout_marginLeft="5dp"android:id="@+id/num9"android:layout_below="@id/num6"android:layout_toRightOf="@id/num8"android:background="@drawable/button"android:text="@string/num9"/><Buttonandroid:layout_height="wrap_content" android:layout_width="70dp"android:layout_marginTop="5dp"android:layout_marginRight="5dp"android:layout_marginLeft="5dp"android:id="@+id/num0"android:layout_below="@id/num7"android:background="@drawable/button"android:text="@string/num0"/><Buttonandroid:layout_height="wrap_content" android:layout_width="70dp"android:layout_marginTop="5dp"android:layout_marginRight="5dp"android:layout_marginLeft="5dp"android:id="@+id/demo"android:layout_below="@id/num8"android:layout_toRightOf="@id/num0"android:background="@drawable/button"android:text="@string/demo"/><Buttonandroid:layout_height="wrap_content" android:layout_width="70dp"android:layout_marginTop="5dp"android:layout_marginRight="5dp"android:layout_marginLeft="5dp"android:id="@+id/eql"android:layout_below="@id/num9"android:layout_toRightOf="@id/demo"android:background="@drawable/button"android:text="@string/eql"/><!--运算符Button--><Buttonandroid:layout_height="wrap_content" android:layout_width="55dp"android:layout_marginTop="5dp"android:id="@+id/add"android:layout_alignParentRight="true"android:layout_marginRight="5dp"android:background="@drawable/button"android:text="@string/add"/><Buttonandroid:layout_height="wrap_content" android:layout_width="55dp"android:layout_marginTop="5dp"android:id="@+id/sub"android:layout_alignParentRight="true"android:layout_marginRight="5dp"android:layout_below="@id/add"android:background="@drawable/button"android:text="@string/sub"/><Buttonandroid:layout_height="wrap_content" android:layout_width="55dp"android:layout_marginTop="5dp"android:id="@+id/mul"android:layout_alignParentRight="true"android:layout_marginRight="5dp"android:layout_below="@id/sub"android:background="@drawable/button"android:text="@string/mul"/><Buttonandroid:layout_height="wrap_content" android:layout_width="55dp"android:layout_marginTop="5dp"android:id="@+id/div"android:layout_alignParentRight="true"android:layout_marginRight="5dp"android:layout_below="@id/mul"android:background="@drawable/button"android:text="@string/div"/><Buttonandroid:layout_height="wrap_content" android:layout_width="fill_parent"android:layout_marginTop="5dp"android:id="@+id/clean"android:layout_alignParentRight="true"android:layout_marginRight="5dp"android:layout_below="@id/eql"android:background="@drawable/button"android:text="@string/clean"/></RelativeLayout></LinearLayout>

按钮的一个形式封装

文件路径是res/drawable/button.xml

<?xml version="1.0" encoding="UTF-8"?>  <layer-list xmlns:android="http://schemas.android.com/apk/res/android">   <!-- 连框颜色值 --><item>         <shape>               <solid android:color="#000000" />         </shape>   </item>   <!-- 主体背景颜色值 -->  <item android:bottom="3dp" android:right="3dp">        <shape>              <solid android:color="#aaaaaa" />                          <padding android:bottom="10dp"                  android:left="10dp"                  android:right="10dp"                  android:top="10dp" />       </shape>       </item>  </layer-list> 


运行效果



                                             
0 0
原创粉丝点击