編輯:關於Android編程
自己寫的安卓的計算器:
注:這個是在mac中開發的,如果要在windows的eclipse中運行可能會出現路徑問題,解決辦法從windows中已有的安卓工程根目錄下復制一下classpath文件,然後復制粘貼覆蓋掉這個工程根目錄裡面的路徑文件,再導入工程應該就可以打開了。
安卓計算器Android <wbr>calculator
工程下載鏈接:https://github.com/jiangxh1992/Android-Calculator
代碼:
package com.example.calculator;
import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends Activity implements OnClickListener{
//按鈕
Button btn_1,btn_2,btn_3,
btn_4,btn_5,btn_6,
btn_7,btn_8,btn_9,
btn_10,btn_11,btn_12,
btn_13,btn_14,btn_15,
btn_16,btn_17,btn_18,
btn_19,btn_20,btn_21,btn_22;
//用於判斷是否需要重新輸入
boolean restart;
//屏幕上數字的正負狀態
int front;
//操作數與操作符
float operator1,operator2;
int symbol;//jre1.6不支持switch(字符串)
//"+、—、*、/、x^y、/x、sinx、cosx"-->1、2、3、4、5、6、7、8
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化操作數(默認為0)操作符(默認為+)
operator1=0;
operator2=0;
restart=true;
front=0;//默認為正數
TextView txt=(TextView) findViewById(R.id.textView1);
txt.setText("00");
//獲取button對象
btn_1= (Button)findViewById(R.id.button1);
btn_2= (Button)findViewById(R.id.button2);
btn_3= (Button)findViewById(R.id.button3);
btn_4= (Button)findViewById(R.id.button4);
btn_5= (Button)findViewById(R.id.button5);
btn_6= (Button)findViewById(R.id.button6);
btn_7= (Button)findViewById(R.id.button7);
btn_8= (Button)findViewById(R.id.button8);
btn_9= (Button)findViewById(R.id.button9);
btn_10= (Button)findViewById(R.id.button10);
btn_11= (Button)findViewById(R.id.button11);
btn_12= (Button)findViewById(R.id.button12);
btn_13= (Button)findViewById(R.id.button13);
btn_14= (Button)findViewById(R.id.button14);
btn_15= (Button)findViewById(R.id.button15);
btn_16= (Button)findViewById(R.id.button16);
btn_17= (Button)findViewById(R.id.button17);
btn_18= (Button)findViewById(R.id.button18);
btn_19= (Button)findViewById(R.id.button19);
btn_20= (Button)findViewById(R.id.button20);
btn_21= (Button)findViewById(R.id.button21);
btn_22= (Button)findViewById(R.id.button22);
//注冊點擊事件
btn_1.setOnClickListener(this);
btn_2.setOnClickListener(this);
btn_3.setOnClickListener(this);
btn_4.setOnClickListener(this);
btn_5.setOnClickListener(this);
btn_6.setOnClickListener(this);
btn_7.setOnClickListener(this);
btn_8.setOnClickListener(this);
btn_9.setOnClickListener(this);
btn_10.setOnClickListener(this);
btn_11.setOnClickListener(this);
btn_12.setOnClickListener(this);
btn_13.setOnClickListener(this);
btn_14.setOnClickListener(this);
btn_15.setOnClickListener(this);
btn_16.setOnClickListener(this);
btn_17.setOnClickListener(this);
btn_18.setOnClickListener(this);
btn_19.setOnClickListener(this);
btn_20.setOnClickListener(this);
btn_21.setOnClickListener(this);
btn_22.setOnClickListener(this);
}
@Override
//點擊事件處理
public void onClick(View btn) {
//獲取文本框
TextView txt=(TextView) findViewById(R.id.textView1);
//文本框內容
String text=(String) txt.getText();
float value=Float.parseFloat(text);
System.out.println(value);
switch(btn.getId()){
//數字
case R.id.button1:
if(restart){
txt.setText("1");
restart=false;}
else
txt.setText(text+"1");
break;
case R.id.button2:
if(restart){
txt.setText("2");
restart=false;}
else
txt.setText(text+"2");
break;
case R.id.button3:
if(restart){
txt.setText("3");
restart=false;}
else
txt.setText(text+"3");
break;
case R.id.button4:
if(restart){
txt.setText("4");
restart=false;}
else
txt.setText(text+"4");
break;
case R.id.button5:
if(restart){
txt.setText("5");
restart=false;}
else
txt.setText(text+"5");
break;
case R.id.button6:
if(restart){
txt.setText("6");
restart=false;}
else
txt.setText(text+"6");
break;
case R.id.button7:
if(restart){
txt.setText("7");
restart=false;}
else
txt.setText(text+"7");
break;
case R.id.button8:
if(restart){
txt.setText("8");
restart=false;}
else
txt.setText(text+"8");
break;
case R.id.button9:
if(restart){
txt.setText("9");
restart=false;}
else
txt.setText(text+"9");
break;
case R.id.button10:
if(restart)
txt.setText("00");
else
txt.setText(text+"0");
break;
//+
case R.id.button11:
symbol=1;
operator1=value;
restart=true;
break;
//-
case R.id.button12:
symbol=2;
operator1=value;
restart=true;
break;
//-/+
case R.id.button13:
if(restart){
txt.setText("-");
front=1;}
else if(front==0){
txt.setText("-"+text);
front=1;}
else if(front==1){
txt.setText(text.substring(1));
front=0;
}
break;
//*
case R.id.button14:
symbol=3;
operator1=value;
restart=true;
break;
// /
case R.id.button15:
symbol=4;
operator1=value;
restart=true;
break;
//C
case R.id.button16:
txt.setText("00");
restart=true;
break;
// .
case R.id.button17:
if(restart)
txt.setText(".");
else
txt.setText(text+".");
restart=false;
break;
//=
case R.id.button18:
restart=true;
switch(symbol){
case 1:
txt.setText(String.valueOf(operator1+value));
break;
case 2:
txt.setText(String.valueOf(operator1-value));
break;
case 3:
txt.setText(String.valueOf(operator1*value));
break;
case 4:
txt.setText(String.valueOf(operator1/value));
break;
case 5:
txt.setText(String.valueOf(Math.pow(operator1, value)));
break;
}
break;
//x^y
case R.id.button19:
symbol=5;
operator1=value;
restart=true;
break;
// /x
case R.id.button20:
symbol=6;
txt.setText(String.valueOf(Math.sqrt(value)));
restart=true;
break;
// sinx
case R.id.button21:
symbol=7;
txt.setText(String.valueOf(Math.sin(value)));
restart=true;
break;
// cosx
case R.id.button22:
symbol=8;
txt.setText(String.valueOf(Math.cos(value)));
restart=true;
break;
default:
break;
}
}
}
效果圖:

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持本站。
Android仿微信頂/底部菜單欄效果
本文要實現仿微信微信底部菜單欄+頂部菜單欄,采用ViewPage來做,每一個page對應一個XML,當手指在ViewPage左右滑動時,就相應顯示不同的page(其實就是
設計模式之命令模式(Command)摘錄
23種GOF設計模式一般分為三大類:創建型模式、結構型模式、行為模式。創建型模式抽象了實例化過程,它們幫助一個系統獨立於如何創建、組合和表示它的那些對象。一個類創建型模式
開源項目GridViewWithHeaderAndFooter使用和源碼分析
GridViewWithHeaderAndFooter控件,可以像使用ListView一樣為GridView添加Header和Footer。項目地址:https://gi
分享Android開發自學筆記之AndroidStudio常用功能
相關下載:Android Studio v1.3 官方最新版(apk應用開發工具) http://www.jb51.net/softs/83206.htmlAndroid