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

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

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 937 by torben, Mon Jun 28 09:37:34 2010 UTC revision 938 by torben, Mon Jun 28 09:49:12 2010 UTC
# Line 12  public class CalculatorActivity extends Line 12  public class CalculatorActivity extends
12                  Addition,                  Addition,
13                  Subtraction,                  Subtraction,
14                  Multiplication,                  Multiplication,
15                  Division                  Division,
16                    Sqr,
17                    Sqrt
18          }          }
19                    
20                    
# Line 40  public class CalculatorActivity extends Line 42  public class CalculatorActivity extends
42          findViewById(R.id.btn9).setOnClickListener( new NumericClick('9') );          findViewById(R.id.btn9).setOnClickListener( new NumericClick('9') );
43            
44          findViewById(R.id.btnback).setOnClickListener( new BackClick() );          findViewById(R.id.btnback).setOnClickListener( new BackClick() );
45            findViewById(R.id.btnclear).setOnClickListener( new ClearClick() );
46          findViewById(R.id.btnpoint).setOnClickListener( new PointClick() );          findViewById(R.id.btnpoint).setOnClickListener( new PointClick() );
47                    
48          findViewById(R.id.btnadd).setOnClickListener( new OperationClick(Ops.Addition) );          findViewById(R.id.btnadd).setOnClickListener( new OperationClick(Ops.Addition) );
# Line 47  public class CalculatorActivity extends Line 50  public class CalculatorActivity extends
50          findViewById(R.id.btnmul).setOnClickListener( new OperationClick(Ops.Multiplication) );          findViewById(R.id.btnmul).setOnClickListener( new OperationClick(Ops.Multiplication) );
51          findViewById(R.id.btndiv).setOnClickListener( new OperationClick(Ops.Division) );          findViewById(R.id.btndiv).setOnClickListener( new OperationClick(Ops.Division) );
52                    
53            findViewById(R.id.btnsqr).setOnClickListener( new SingleOperationClick(Ops.Sqr) );
54            findViewById(R.id.btnsqrt).setOnClickListener( new SingleOperationClick(Ops.Sqrt) );
55            
56          findViewById(R.id.btnsum).setOnClickListener( new SumClick() );          findViewById(R.id.btnsum).setOnClickListener( new SumClick() );
57                    
58          mEdit = (EditText) findViewById(R.id.edit);          mEdit = (EditText) findViewById(R.id.edit);
# Line 55  public class CalculatorActivity extends Line 61  public class CalculatorActivity extends
61                    
62      }      }
63            
64        void setResult(double res) {
65                    if ( Double.isInfinite(res) || Double.isNaN(res) ) {
66                            mClear = true;
67                    }
68                    
69                    
70                    mEdit.setText( Double.toString(res) );
71                    mOperation = Ops.None;
72                    mVal1 = res;
73        }
74        
75            
76      class NumericClick implements View.OnClickListener {      class NumericClick implements View.OnClickListener {
77          char mNumval;          char mNumval;
# Line 94  public class CalculatorActivity extends Line 111  public class CalculatorActivity extends
111                  }                  }
112      }      }
113            
114        class ClearClick implements View.OnClickListener {
115    
116                    @Override
117                    public void onClick(View v) {
118                            mClear = false;
119                            mEdit.setText("0");
120                            mOperation = Ops.None;
121                            mVal1 = 0;
122                    }
123        }
124        
125      class PointClick implements View.OnClickListener {      class PointClick implements View.OnClickListener {
126    
127                  @Override                  @Override
# Line 122  public class CalculatorActivity extends Line 150  public class CalculatorActivity extends
150                  }                  }
151      }      }
152            
153        class SingleOperationClick implements View.OnClickListener {
154            Ops mOp;
155            public SingleOperationClick(Ops op) {
156                    mOp = op;
157            }
158    
159                    @Override
160                    public void onClick(View v) {                  
161                            mVal1 = Double.parseDouble( mEdit.getText().toString() );
162                            
163                            double res = 0.0;
164                            switch (mOp) {
165                            case Sqr:
166                                    res = mVal1 * mVal1;
167                                    break;
168                            case Sqrt:
169                                    res = Math.sqrt(mVal1);
170                                    break;
171                            }
172                            setResult(res);
173                    }
174        }
175        
176      class SumClick implements View.OnClickListener {      class SumClick implements View.OnClickListener {
177                  @Override                  @Override
178                  public void onClick(View v) {                  public void onClick(View v) {
# Line 147  public class CalculatorActivity extends Line 198  public class CalculatorActivity extends
198                                  break;                                                            break;                          
199                          }                          }
200                                                    
201                          if ( Double.isInfinite(res) || Double.isNaN(res) ) {                          setResult(res);
                                 mClear = true;  
                         }  
                           
                           
                         mEdit.setText( Double.toString(res) );  
                         mOperation = Ops.None;  
                         mVal1 = res;  
202                  }                  }
203      }          }    
204  }  }

Legend:
Removed from v.937  
changed lines
  Added in v.938

  ViewVC Help
Powered by ViewVC 1.1.20