간단하게 Android 계산기 기능 구현
주:이것 은 mac 에서 개 발 된 것 입 니 다.windows 의 eclipse 에서 실행 하려 면 경로 문제 가 발생 할 수 있 습 니 다.해결 방법 은 windows 에 있 는 안 드 로 이 드 프로젝트 루트 디 렉 터 리 에서 classpath 파일 을 복사 한 다음 붙 여 넣 기 를 복사 하여 이 프로젝트 루트 디 렉 터 리 에 있 는 경로 파일 을 덮어 쓰 고 프로젝트 를 가 져 오 면 열 수 있 을 것 입 니 다.
안 드 로 이 드 계산기 안 드 로 이 드
프로젝트 다운로드 링크: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;
}
}
}
효과 그림:이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Bitrise에서 배포 어플리케이션 설정 테스트하기이 글은 Bitrise 광고 달력의 23일째 글입니다. 자체 또는 당사 등에서 Bitrise 구축 서비스를 사용합니다. 그나저나 며칠 전 Bitrise User Group Meetup #3에서 아래 슬라이드를 발표했...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.