/[projects]/android/Calculator/src/dk/thoerup/calculator/CalculatorActivity.java
ViewVC logotype

Contents of /android/Calculator/src/dk/thoerup/calculator/CalculatorActivity.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 931 - (show annotations) (download)
Sun Jun 27 18:40:19 2010 UTC (13 years, 10 months ago) by torben
File size: 3911 byte(s)
Initial import
1 package dk.thoerup.calculator;
2
3 import android.app.Activity;
4 import android.os.Bundle;
5 import android.text.Editable;
6 import android.view.View;
7 import android.widget.EditText;
8
9 public class CalculatorActivity extends Activity {
10 /** Called when the activity is first created. */
11
12 EditText mEdit;
13
14
15 double mVal1;
16 char mOperation = ' ';
17 boolean mClear = false;
18
19 @Override
20 public void onCreate(Bundle savedInstanceState) {
21 super.onCreate(savedInstanceState);
22 setContentView(R.layout.main);
23
24 findViewById(R.id.btn0).setOnClickListener( new NumericClick('0') );
25 findViewById(R.id.btn1).setOnClickListener( new NumericClick('1') );
26 findViewById(R.id.btn2).setOnClickListener( new NumericClick('2') );
27 findViewById(R.id.btn3).setOnClickListener( new NumericClick('3') );
28 findViewById(R.id.btn4).setOnClickListener( new NumericClick('4') );
29 findViewById(R.id.btn5).setOnClickListener( new NumericClick('5') );
30 findViewById(R.id.btn6).setOnClickListener( new NumericClick('6') );
31 findViewById(R.id.btn7).setOnClickListener( new NumericClick('7') );
32 findViewById(R.id.btn8).setOnClickListener( new NumericClick('8') );
33 findViewById(R.id.btn9).setOnClickListener( new NumericClick('9') );
34
35 findViewById(R.id.btnback).setOnClickListener( new BackClick() );
36 findViewById(R.id.btnpoint).setOnClickListener( new PointClick() );
37
38 findViewById(R.id.btnadd).setOnClickListener( new OperationClick('+') );
39 findViewById(R.id.btnsub).setOnClickListener( new OperationClick('-') );
40 findViewById(R.id.btnmul).setOnClickListener( new OperationClick('*') );
41 findViewById(R.id.btndiv).setOnClickListener( new OperationClick('/') );
42
43 findViewById(R.id.btnsum).setOnClickListener( new SumClick() );
44
45 mEdit = (EditText) findViewById(R.id.edit);
46 mEdit.setCursorVisible(false);
47
48
49 }
50
51
52 class NumericClick implements View.OnClickListener {
53 char mNumval;
54
55 public NumericClick(char numval) {
56 mNumval = numval;
57 }
58
59 @Override
60 public void onClick(View v) {
61 Editable tempText = mEdit.getText();
62
63 if (tempText.toString().equals("0") || mClear==true ) {
64 tempText.clear();
65 }
66 tempText.append(mNumval);
67 }
68
69 }
70
71 class BackClick implements View.OnClickListener {
72
73 @Override
74 public void onClick(View v) {
75 if (mClear) {
76 mEdit.setText("0");
77 return;
78 }
79
80 Editable tempText = mEdit.getText();
81 if (tempText.length() > 0) {
82 CharSequence cs = tempText.subSequence(0, tempText.length() -1);
83 mEdit.setText(cs);
84 }
85 }
86 }
87
88 class PointClick implements View.OnClickListener {
89
90 @Override
91 public void onClick(View v) {
92
93 Editable tempText = mEdit.getText();
94 if (tempText.toString().indexOf('.') == -1) {
95 tempText.append('.');
96 }
97 }
98 }
99
100 class OperationClick implements View.OnClickListener {
101 char mOp;
102 public OperationClick(char op) {
103 mOp = op;
104 }
105
106 @Override
107 public void onClick(View v) {
108 mVal1 = Double.parseDouble( mEdit.getText().toString() );
109 mEdit.setText("0");
110
111 mOperation = mOp;
112
113 }
114 }
115
116 class SumClick implements View.OnClickListener {
117 @Override
118 public void onClick(View v) {
119 if (mOperation == ' ') {
120 return;
121 }
122
123 double val2 = Double.parseDouble( mEdit.getText().toString() );
124
125 Double res = 0.0;
126 switch (mOperation) {
127 case '+':
128 res = mVal1 + val2;
129 break;
130 case '-':
131 res = mVal1 - val2;
132 break;
133 case '*':
134 res = mVal1 * val2;
135 break;
136 case '/':
137 res = mVal1 / val2;
138 break;
139 }
140
141 if ( res.isInfinite() || res.isNaN() ) {
142 mClear = true;
143 }
144
145 mEdit.setText( res.toString() );
146 mOperation = ' ';
147 mVal1 = res;
148 }
149 }
150 }

  ViewVC Help
Powered by ViewVC 1.1.20