Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public View onCreateView(LayoutInflater inflater, ViewGroup container,
- Bundle savedInstanceState) {
- View myView = inflater.inflate(R.layout.calc_inflate, container, false);
- mCalculation = new Calculation();
- mCalculatorDisplay = (TextView) myView.findViewById(R.id.textView1);
- mCalculatorDisplayUP = (TextView) myView.findViewById(R.id.textView0);
- /** SharedPreferences */
- sharedpreferences = getActivity().getSharedPreferences(MyPREFERENCES,
- Context.MODE_PRIVATE);
- if (sharedpreferences.contains(inputValueNamber)) {
- mCalculatorDisplay.setText(sharedpreferences.getString(
- inputValueNamber, ""));
- if (sharedpreferences.contains(inputValueNamber)) {
- mCalculatorDisplayUP.setText(sharedpreferences.getString(
- inputValueNamber, ""));
- }
- }
- df.setMinimumFractionDigits(0);
- df.setMinimumIntegerDigits(1);
- df.setMaximumIntegerDigits(20);
- myView.findViewById(R.id.button00).setOnClickListener(this);
- myView.findViewById(R.id.button0).setOnClickListener(this);
- myView.findViewById(R.id.button1).setOnClickListener(this);
- myView.findViewById(R.id.button2).setOnClickListener(this);
- myView.findViewById(R.id.button3).setOnClickListener(this);
- myView.findViewById(R.id.button4).setOnClickListener(this);
- myView.findViewById(R.id.button5).setOnClickListener(this);
- myView.findViewById(R.id.button6).setOnClickListener(this);
- myView.findViewById(R.id.button7).setOnClickListener(this);
- myView.findViewById(R.id.button8).setOnClickListener(this);
- myView.findViewById(R.id.button9).setOnClickListener(this);
- myView.findViewById(R.id.buttonAdd).setOnClickListener(this);
- myView.findViewById(R.id.buttonSubtract).setOnClickListener(this);
- myView.findViewById(R.id.buttonMultiply).setOnClickListener(this);
- myView.findViewById(R.id.buttonDivide).setOnClickListener(this);
- myView.findViewById(R.id.buttonDecimalPoint).setOnClickListener(this);
- myView.findViewById(R.id.buttonEquals).setOnClickListener(this);
- myView.findViewById(R.id.buttonClear).setOnClickListener(this);
- return myView;
- }
- @Override
- public void onClick(View v) {
- String buttonPressed = ((Button) v).getText().toString();
- if (DIGITS.contains(buttonPressed)) {
- if (userIsInTheMiddleOfTypingANumber) {
- if (buttonPressed.equals(".")
- && mCalculatorDisplay.getText().toString()
- .contains(".")) {
- } else {
- mCalculatorDisplay.append(buttonPressed);
- }
- } else {
- if (buttonPressed.equals(".")) {
- mCalculatorDisplay.setText(0 + buttonPressed);
- } else {
- mCalculatorDisplay.setText(buttonPressed);
- }
- userIsInTheMiddleOfTypingANumber = true;
- }
- } else {
- if (userIsInTheMiddleOfTypingANumber) {
- mCalculation.setOperand(Double.parseDouble(mCalculatorDisplay
- .getText().toString()));
- userIsInTheMiddleOfTypingANumber = false;
- }
- mCalculation.performOperation(buttonPressed);
- mCalculatorDisplay.setText(df.format(mCalculation.getResult()));
- mCalculatorDisplayUP.setText(df.format(mCalculation.getResult()));
- }
- }
- public class Calculation {
- private double mOperand;
- private double mWaitingOperand;
- private String mWaitingOperator;
- private double mCalculatorMemory;
- // operator types
- public static final String ADD = "+";
- public static final String SUBTRACT = "-";
- public static final String MULTIPLY = "*";
- public static final String DIVIDE = "/";
- public static final String CLEAR = "C" ;
- public static final String CLEARMEMORY = "MC";
- public static final String ADDTOMEMORY = "M+";
- public static final String SUBTRACTFROMMEMORY = "M-";
- public static final String RECALLMEMORY = "MR";
- public static final String SQUAREROOT = "√";
- public static final String SQUARED = "x²";
- public static final String INVERT = "1/x";
- public static final String TOGGLESIGN = "+/-";
- public static final String SINE = "sin";
- public static final String COSINE = "cos";
- public static final String TANGENT = "tan";
- // constructor
- public Calculation() {
- mOperand = 0;
- mWaitingOperand = 0;
- mWaitingOperator = "";
- mCalculatorMemory = 0;
- }
- public void setOperand(double operand) {
- mOperand = operand;
- }
- public double getResult() {
- return mOperand;
- }
- public void setMemory(double calculatorMemory) {
- mCalculatorMemory = calculatorMemory;
- }
- public double getMemory() {
- return mCalculatorMemory;
- }
- public String toString() {
- return Double.toString(mOperand);
- }
- protected double performOperation(String operator) {
- if (operator.equals(CLEAR)) {
- mOperand = 0;
- mWaitingOperator = "";
- mWaitingOperand = 0;
- } else if (operator.equals(CLEARMEMORY)) {
- mCalculatorMemory = 0;
- } else if (operator.equals(ADDTOMEMORY)) {
- mCalculatorMemory = mCalculatorMemory + mOperand;
- } else if (operator.equals(SUBTRACTFROMMEMORY)) {
- mCalculatorMemory = mCalculatorMemory - mOperand;
- } else if (operator.equals(RECALLMEMORY)) {
- mOperand = mCalculatorMemory;
- } else if (operator.equals(SQUAREROOT)) {
- mOperand = Math.sqrt(mOperand);
- } else if (operator.equals(SQUARED)) {
- mOperand = mOperand * mOperand;
- } else if (operator.equals(INVERT)) {
- if (mOperand != 0) {
- mOperand = 1 / mOperand;
- }
- } else if (operator.equals(TOGGLESIGN)) {
- mOperand = -mOperand;
- } else if (operator.equals(SINE)) {
- mOperand = Math.sin(Math.toRadians(mOperand));
- } else if (operator.equals(COSINE)) {
- mOperand = Math.cos(Math.toRadians(mOperand));
- } else if (operator.equals(TANGENT)) {
- mOperand = Math.tan(Math.toRadians(mOperand));
- } else {
- performWaitingOperation();
- mWaitingOperator = operator;
- mWaitingOperand = mOperand;
- }
- return mOperand;
- }
- protected void performWaitingOperation() {
- if (mWaitingOperator.equals(ADD)) {
- mOperand = mWaitingOperand + mOperand;
- } else if (mWaitingOperator.equals(SUBTRACT)) {
- mOperand = mWaitingOperand - mOperand;
- } else if (mWaitingOperator.equals(MULTIPLY)) {
- mOperand = mWaitingOperand * mOperand;
- } else if (mWaitingOperator.equals(DIVIDE)) {
- if (mOperand != 0) {
- mOperand = mWaitingOperand / mOperand;
- }
- }
- }
- private boolean additionPerformed;
- public Calculation() {
- this.additionPerformed = false;
- mOperand = 0;
- mWaitingOperand = 0;
- mWaitingOperator = "";
- mCalculatorMemory = 0;
- }
- protected void performWaitingOperation() {
- if (mWaitingOperator.equals(ADD) && additionPerformed == false) {
- mOperand = mWaitingOperand + mOperand;
- additionPerformed = true;
- } else if (mWaitingOperator.equals(SUBTRACT)) {
- mOperand = mWaitingOperand - mOperand;
- } else if (mWaitingOperator.equals(MULTIPLY)) {
- mOperand = mWaitingOperand * mOperand;
- } else if (mWaitingOperator.equals(DIVIDE)) {
- if (mOperand != 0) {
- mOperand = mWaitingOperand / mOperand;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement