Advertisement
Guest User

Untitled

a guest
Apr 17th, 2014
39
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.14 KB | None | 0 0
  1. public View onCreateView(LayoutInflater inflater, ViewGroup container,
  2. Bundle savedInstanceState) {
  3. View myView = inflater.inflate(R.layout.calc_inflate, container, false);
  4.  
  5. mCalculation = new Calculation();
  6. mCalculatorDisplay = (TextView) myView.findViewById(R.id.textView1);
  7. mCalculatorDisplayUP = (TextView) myView.findViewById(R.id.textView0);
  8.  
  9. /** SharedPreferences */
  10. sharedpreferences = getActivity().getSharedPreferences(MyPREFERENCES,
  11. Context.MODE_PRIVATE);
  12.  
  13. if (sharedpreferences.contains(inputValueNamber)) {
  14. mCalculatorDisplay.setText(sharedpreferences.getString(
  15. inputValueNamber, ""));
  16. if (sharedpreferences.contains(inputValueNamber)) {
  17. mCalculatorDisplayUP.setText(sharedpreferences.getString(
  18. inputValueNamber, ""));
  19. }
  20. }
  21.  
  22. df.setMinimumFractionDigits(0);
  23. df.setMinimumIntegerDigits(1);
  24. df.setMaximumIntegerDigits(20);
  25.  
  26. myView.findViewById(R.id.button00).setOnClickListener(this);
  27. myView.findViewById(R.id.button0).setOnClickListener(this);
  28. myView.findViewById(R.id.button1).setOnClickListener(this);
  29. myView.findViewById(R.id.button2).setOnClickListener(this);
  30. myView.findViewById(R.id.button3).setOnClickListener(this);
  31. myView.findViewById(R.id.button4).setOnClickListener(this);
  32. myView.findViewById(R.id.button5).setOnClickListener(this);
  33. myView.findViewById(R.id.button6).setOnClickListener(this);
  34. myView.findViewById(R.id.button7).setOnClickListener(this);
  35. myView.findViewById(R.id.button8).setOnClickListener(this);
  36. myView.findViewById(R.id.button9).setOnClickListener(this);
  37.  
  38. myView.findViewById(R.id.buttonAdd).setOnClickListener(this);
  39. myView.findViewById(R.id.buttonSubtract).setOnClickListener(this);
  40. myView.findViewById(R.id.buttonMultiply).setOnClickListener(this);
  41. myView.findViewById(R.id.buttonDivide).setOnClickListener(this);
  42. myView.findViewById(R.id.buttonDecimalPoint).setOnClickListener(this);
  43. myView.findViewById(R.id.buttonEquals).setOnClickListener(this);
  44. myView.findViewById(R.id.buttonClear).setOnClickListener(this);
  45.  
  46.  
  47. return myView;
  48.  
  49. }
  50.  
  51. @Override
  52. public void onClick(View v) {
  53.  
  54. String buttonPressed = ((Button) v).getText().toString();
  55.  
  56. if (DIGITS.contains(buttonPressed)) {
  57.  
  58. if (userIsInTheMiddleOfTypingANumber) {
  59.  
  60. if (buttonPressed.equals(".")
  61. && mCalculatorDisplay.getText().toString()
  62. .contains(".")) {
  63. } else {
  64. mCalculatorDisplay.append(buttonPressed);
  65. }
  66.  
  67. } else {
  68.  
  69. if (buttonPressed.equals(".")) {
  70. mCalculatorDisplay.setText(0 + buttonPressed);
  71. } else {
  72. mCalculatorDisplay.setText(buttonPressed);
  73. }
  74.  
  75. userIsInTheMiddleOfTypingANumber = true;
  76. }
  77.  
  78. } else {
  79. if (userIsInTheMiddleOfTypingANumber) {
  80.  
  81. mCalculation.setOperand(Double.parseDouble(mCalculatorDisplay
  82. .getText().toString()));
  83. userIsInTheMiddleOfTypingANumber = false;
  84. }
  85.  
  86. mCalculation.performOperation(buttonPressed);
  87. mCalculatorDisplay.setText(df.format(mCalculation.getResult()));
  88. mCalculatorDisplayUP.setText(df.format(mCalculation.getResult()));
  89.  
  90. }
  91. }
  92.  
  93. public class Calculation {
  94. private double mOperand;
  95. private double mWaitingOperand;
  96. private String mWaitingOperator;
  97. private double mCalculatorMemory;
  98.  
  99. // operator types
  100. public static final String ADD = "+";
  101. public static final String SUBTRACT = "-";
  102. public static final String MULTIPLY = "*";
  103. public static final String DIVIDE = "/";
  104.  
  105. public static final String CLEAR = "C" ;
  106. public static final String CLEARMEMORY = "MC";
  107. public static final String ADDTOMEMORY = "M+";
  108. public static final String SUBTRACTFROMMEMORY = "M-";
  109. public static final String RECALLMEMORY = "MR";
  110. public static final String SQUAREROOT = "√";
  111. public static final String SQUARED = "x²";
  112. public static final String INVERT = "1/x";
  113. public static final String TOGGLESIGN = "+/-";
  114. public static final String SINE = "sin";
  115. public static final String COSINE = "cos";
  116. public static final String TANGENT = "tan";
  117.  
  118.  
  119. // constructor
  120. public Calculation() {
  121. mOperand = 0;
  122. mWaitingOperand = 0;
  123. mWaitingOperator = "";
  124. mCalculatorMemory = 0;
  125. }
  126.  
  127. public void setOperand(double operand) {
  128. mOperand = operand;
  129. }
  130.  
  131. public double getResult() {
  132. return mOperand;
  133. }
  134.  
  135. public void setMemory(double calculatorMemory) {
  136. mCalculatorMemory = calculatorMemory;
  137. }
  138.  
  139. public double getMemory() {
  140. return mCalculatorMemory;
  141. }
  142.  
  143. public String toString() {
  144. return Double.toString(mOperand);
  145. }
  146.  
  147. protected double performOperation(String operator) {
  148.  
  149. if (operator.equals(CLEAR)) {
  150. mOperand = 0;
  151. mWaitingOperator = "";
  152. mWaitingOperand = 0;
  153. } else if (operator.equals(CLEARMEMORY)) {
  154. mCalculatorMemory = 0;
  155. } else if (operator.equals(ADDTOMEMORY)) {
  156. mCalculatorMemory = mCalculatorMemory + mOperand;
  157. } else if (operator.equals(SUBTRACTFROMMEMORY)) {
  158. mCalculatorMemory = mCalculatorMemory - mOperand;
  159. } else if (operator.equals(RECALLMEMORY)) {
  160. mOperand = mCalculatorMemory;
  161. } else if (operator.equals(SQUAREROOT)) {
  162. mOperand = Math.sqrt(mOperand);
  163.  
  164. } else if (operator.equals(SQUARED)) {
  165. mOperand = mOperand * mOperand;
  166.  
  167. } else if (operator.equals(INVERT)) {
  168. if (mOperand != 0) {
  169. mOperand = 1 / mOperand;
  170. }
  171. } else if (operator.equals(TOGGLESIGN)) {
  172. mOperand = -mOperand;
  173. } else if (operator.equals(SINE)) {
  174. mOperand = Math.sin(Math.toRadians(mOperand));
  175. } else if (operator.equals(COSINE)) {
  176. mOperand = Math.cos(Math.toRadians(mOperand));
  177. } else if (operator.equals(TANGENT)) {
  178. mOperand = Math.tan(Math.toRadians(mOperand));
  179. } else {
  180. performWaitingOperation();
  181. mWaitingOperator = operator;
  182. mWaitingOperand = mOperand;
  183. }
  184.  
  185. return mOperand;
  186. }
  187.  
  188. protected void performWaitingOperation() {
  189.  
  190. if (mWaitingOperator.equals(ADD)) {
  191. mOperand = mWaitingOperand + mOperand;
  192. } else if (mWaitingOperator.equals(SUBTRACT)) {
  193. mOperand = mWaitingOperand - mOperand;
  194. } else if (mWaitingOperator.equals(MULTIPLY)) {
  195. mOperand = mWaitingOperand * mOperand;
  196. } else if (mWaitingOperator.equals(DIVIDE)) {
  197. if (mOperand != 0) {
  198. mOperand = mWaitingOperand / mOperand;
  199. }
  200. }
  201.  
  202. }
  203.  
  204. private boolean additionPerformed;
  205.  
  206. public Calculation() {
  207. this.additionPerformed = false;
  208. mOperand = 0;
  209. mWaitingOperand = 0;
  210. mWaitingOperator = "";
  211. mCalculatorMemory = 0;
  212. }
  213.  
  214. protected void performWaitingOperation() {
  215.  
  216. if (mWaitingOperator.equals(ADD) && additionPerformed == false) {
  217. mOperand = mWaitingOperand + mOperand;
  218. additionPerformed = true;
  219. } else if (mWaitingOperator.equals(SUBTRACT)) {
  220. mOperand = mWaitingOperand - mOperand;
  221. } else if (mWaitingOperator.equals(MULTIPLY)) {
  222. mOperand = mWaitingOperand * mOperand;
  223. } else if (mWaitingOperator.equals(DIVIDE)) {
  224. if (mOperand != 0) {
  225. mOperand = mWaitingOperand / mOperand;
  226. }
  227. }
  228.  
  229. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement