Guest User

Untitled

a guest
Jun 19th, 2018
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.97 KB | None | 0 0
  1. public class CalcActivity extends Activity
  2. {
  3. TextView tvScreenCalc;
  4. String currentString="0",previusString=null;
  5. boolean isTempStringShown=false;
  6. int currentopperand=0;
  7. @Override public void onCreate(Bundle savedInstanceState)
  8. {
  9. super.onCreate(savedInstanceState);
  10. setContentView(R.layout.activity_calc);
  11. this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_USER_PORTRAIT);
  12. tvScreenCalc=(TextView)findViewById(R.id.tvScreenCalc);
  13. int numberButtons[]={R.id.button0,R.id.button1,R.id.button2,R.id.button3,R.id.button4,R.id.button5,R.id.button6,R.id.button7,R.id.button8,R.id.button9};
  14. NumberButtonClickListener numberClickListener=new NumberButtonClickListener();
  15. for(int id:numberButtons)
  16. { View v=findViewById(id);
  17. v.setOnClickListener(numberClickListener);
  18. }
  19. int opperandButtons[]={R.id.buttonPlus,R.id.buttonMinus,R.id.buttonDivide,R.id.buttonTimes,R.id.buttonDecimal,R.id.buttonClear,R.id.buttonEquals};
  20. OpperandButtonClickListener oppClickListener=new OpperandButtonClickListener();
  21. for(int id:opperandButtons)
  22. { View v=findViewById(id);
  23. v.setOnClickListener(oppClickListener);
  24. }
  25. setCurrentString("0");
  26. }
  27. void setCurrentString(String s)
  28. { currentString=s;
  29. tvScreenCalc.setText(s);
  30. }
  31. class NumberButtonClickListener implements OnClickListener
  32. { @Override public void onClick(View v)
  33. { if(isTempStringShown)
  34. { previusString=currentString;
  35. currentString="0";
  36. isTempStringShown=false;
  37. }
  38. String text=(String)((Button)v).getText();
  39. if(currentString.equals("0"))setCurrentString(text);
  40. else setCurrentString(currentString+text);
  41. }
  42. }
  43. class OpperandButtonClickListener implements OnClickListener
  44. { @Override public void onClick(View v)
  45. { int id=v.getId();
  46. if(id==R.id.buttonClear)
  47. { isTempStringShown=false;
  48. setCurrentString("0");
  49. previusString=null;
  50. }
  51. if(id==R.id.buttonDecimal)if(!currentString.contains("."))setCurrentString(currentString+".");
  52. if(id==R.id.buttonPlus||id==R.id.buttonMinus||id==R.id.buttonTimes||id==R.id.buttonDivide)
  53. { currentopperand=id;
  54. previusString=currentString;
  55. isTempStringShown=true;
  56. }
  57. if(id==R.id.buttonEquals)
  58. { double curr=Double.parseDouble(currentString);
  59. double result=0;
  60. if(previusString!=null)
  61. { double prev=Double.parseDouble(previusString);
  62. switch(currentopperand)
  63. { case R.id.buttonPlus: result=prev+curr; break;
  64. case R.id.buttonMinus: result=prev-curr; break;
  65. case R.id.buttonTimes: result=prev*curr; break;
  66. case R.id.buttonDivide: result=prev/curr; break;
  67. }
  68. }
  69. setCurrentString(Double.toString(result));
  70. }
  71. }
  72. }
  73. }
Add Comment
Please, Sign In to add comment