自己做的一个简单的计算器,只能实现简单的四则运算。
activity_main.xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.calculator.MainActivity" > <TextView android:id="@+id/show" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center_vertical" android:hint="0" android:minLines="3" /> <Button android:id="@+id/clean" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_below="@id/show" android:text="清除" /> <Button android:id="@+id/seven" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/clean" android:text="7" /> <Button android:id="@+id/eight" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBottom="@+id/seven" android:layout_toRightOf="@+id/seven" android:text="8" /> <Button android:id="@+id/nine" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/eight" android:layout_alignBottom="@+id/eight" android:layout_toRightOf="@+id/eight" android:text="9" /> <Button android:id="@+id/add" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/nine" android:layout_alignBottom="@+id/nine" android:layout_toRightOf="@+id/nine" android:text="+" /> <Button android:id="@+id/four" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignRight="@+id/seven" android:layout_below="@+id/seven" android:text="4" /> <Button android:id="@+id/five" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/four" android:layout_alignBottom="@+id/four" android:layout_alignLeft="@+id/eight" android:text="5" /> <Button android:id="@+id/six" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/five" android:layout_alignBottom="@+id/five" android:layout_toRightOf="@+id/five" android:text="6" /> <Button android:id="@+id/subtract" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/six" android:layout_alignBottom="@+id/six" android:layout_toRightOf="@+id/six" android:text="-" /> <Button android:id="@+id/one" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/four" android:layout_below="@+id/four" android:text="1" /> <Button android:id="@+id/two" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/five" android:layout_below="@+id/five" android:text="2" /> <Button android:id="@+id/three" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/two" android:layout_alignBottom="@+id/two" android:layout_alignLeft="@+id/six" android:text="3" /> <Button android:id="@+id/multiply" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/three" android:layout_alignBottom="@+id/three" android:layout_toRightOf="@+id/three" android:text="*" /> <Button android:id="@+id/zero" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/one" android:layout_alignRight="@+id/one" android:layout_below="@+id/one" android:text="0" /> <Button android:id="@+id/point" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/zero" android:layout_alignBottom="@+id/zero" android:layout_toLeftOf="@+id/multiply" android:text="." /> <Button android:id="@+id/divide" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/multiply" android:layout_below="@+id/multiply" android:text="/" /> <Button android:id="@+id/Symbol" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/one" android:layout_toRightOf="@+id/one" android:text="-/+" /> <Button android:id="@+id/result" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/zero" android:layout_alignRight="@+id/divide" android:layout_below="@+id/zero" android:text="=" /> </RelativeLayout>
MainActivity.java:
package com.example.calculator; import android.R.integer; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; public class MainActivity extends Activity implements OnClickListener { private Button one, two, three, four, five, six, seven, eight, nine, zero; private Button add, subtract, multiply, divide; private Button Symbol, point; private Button clean, result; private TextView ShowResult; double num1, num2, num; int op = 0; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 0---9 one = (Button) findViewById(R.id.one); two = (Button) findViewById(R.id.two); three = (Button) findViewById(R.id.three); four = (Button) findViewById(R.id.four); five = (Button) findViewById(R.id.five); six = (Button) findViewById(R.id.six); seven = (Button) findViewById(R.id.seven); eight = (Button) findViewById(R.id.eight); nine = (Button) findViewById(R.id.nine); zero = (Button) findViewById(R.id.zero); // +-*/ add = (Button) findViewById(R.id.add); subtract = (Button) findViewById(R.id.subtract); multiply = (Button) findViewById(R.id.multiply); divide = (Button) findViewById(R.id.divide); point = (Button) findViewById(R.id.point); clean = (Button) findViewById(R.id.clean); result = (Button) findViewById(R.id.result); ShowResult = (TextView) findViewById(R.id.show); clean.setOnClickListener(this); zero.setOnClickListener(this); one.setOnClickListener(this); two.setOnClickListener(this); three.setOnClickListener(this); four.setOnClickListener(this); five.setOnClickListener(this); six.setOnClickListener(this); seven.setOnClickListener(this); eight.setOnClickListener(this); nine.setOnClickListener(this); add.setOnClickListener(this); subtract.setOnClickListener(this); multiply.setOnClickListener(this); divide.setOnClickListener(this); point.setOnClickListener(this); result.setOnClickListener(this); } @Override public void onClick(View v) { String content = ""; switch (v.getId()) { // 0---9 case R.id.one: content = ShowResult.getText().toString() + "1"; ShowResult.setText(content); break; case R.id.two: content = ShowResult.getText().toString() + "2"; ShowResult.setText(content); break; case R.id.three: content = ShowResult.getText().toString() + "3"; ShowResult.setText(content); break; case R.id.four: content = ShowResult.getText().toString() + "4"; ShowResult.setText(content); break; case R.id.five: content = ShowResult.getText().toString() + "5"; ShowResult.setText(content); break; case R.id.six: content = ShowResult.getText().toString() + "6"; ShowResult.setText(content); break; case R.id.seven: content = ShowResult.getText().toString() + "7"; ShowResult.setText(content); break; case R.id.eight: content = ShowResult.getText().toString() + "8"; ShowResult.setText(content); break; case R.id.nine: content = ShowResult.getText().toString() + "9"; ShowResult.setText(content); break; case R.id.zero: content = ShowResult.getText().toString() + "0"; ShowResult.setText(content); break; case R.id.point: content = ShowResult.getText().toString() + "."; ShowResult.setText(content); break; // +-*/ case R.id.add: String addString = ShowResult.getText().toString(); if (addString.equals("")) { return; } num1 = Double.valueOf(addString); op = 1; ShowResult.setText(""); break; case R.id.subtract: String subString = ShowResult.getText().toString(); if (subString.equals("")) { return; } num1 = Double.valueOf(subString); op = 2; ShowResult.setText(""); break; case R.id.multiply: String mulString = ShowResult.getText().toString(); if (mulString.equals("")) { return; } num1 = Double.valueOf(mulString); op = 3; ShowResult.setText(""); break; case R.id.divide: String divString = ShowResult.getText().toString(); if (divString.equals("")) { return; } num1 = Double.valueOf(divString); op = 4; ShowResult.setText(""); break; // clean case R.id.clean: ShowResult.setText(""); break; // = case R.id.result: String resultString = ShowResult.getText().toString(); if (resultString.equals("")) { return; } num2 = Double.valueOf(resultString); switch (op) { case 0: num = num2; break; case 1: num = num1 + num2; break; case 2: num = num1 - num2; break; case 3: num = num1 * num2; break; case 4: num = num1 / num2; break; default: break; } ShowResult.setText(num + ""); break; default: break; } } }
原文:http://blog.csdn.net/u013476556/article/details/44998913