Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.example.yarik.lab1;
- import android.app.AlertDialog;
- import android.app.Dialog;
- import android.os.Bundle;
- import android.support.annotation.NonNull;
- import android.support.v4.app.DialogFragment;
- public class CustomDialogFragment extends DialogFragment {
- @NonNull
- public Dialog onCreateDialog(Bundle savedInstanceState) {
- String fromText = getArguments().getString("firstNumber");
- String toText = getArguments().getString("secondNumber");
- String operationString = getArguments().getString("operationText");
- Double result = 0.0;
- boolean failed = false;
- try {
- Double firstNumber = Double.parseDouble(fromText);
- Double secondNumber = Double.parseDouble(toText);
- char operation = operationString.charAt(0);
- result = calculate(firstNumber, secondNumber, operation);
- } catch (Throwable t) {
- failed = true;
- }
- AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
- if (failed) {
- return builder
- .setTitle("ERROR!")
- .setMessage("You've provided incorrect input!")
- .setPositiveButton("I'll try to be better next time", null)
- .create();
- } else return builder
- .setTitle("Result of operation")
- .setIcon(android.R.drawable.ic_dialog_info)
- .setMessage("Result = " + result)
- .setPositiveButton("OK", null)
- .create();
- }
- private Double calculate(Double firstNumber, Double secondNumber, char operation) {
- switch (operation) {
- case '+':
- return firstNumber + secondNumber;
- case '-':
- return firstNumber - secondNumber;
- case '*':
- return firstNumber * secondNumber;
- case '/':
- return firstNumber / secondNumber;
- }
- throw new NumberFormatException();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement