Урок 19. Пишем простой калькулятор

Обсуждение уроков
Аватара пользователя
doter.ua
Сообщения: 1106
Зарегистрирован: 23 ноя 2013, 16:08
Откуда: Ukraine

Re: Урок 19. Пишем простой калькулятор

Сообщение doter.ua » 06 ноя 2015, 19:41

Андрей Валентинович писал(а): как добавлять списком? Чтоб один результат не заменял другой, а результаты складывались?
Сделай результат 0, и складывай ответы вместо присвоения.
sum = 0;
...
sum += result;
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.

Андрей Валентинович
Сообщения: 13
Зарегистрирован: 24 янв 2014, 02:45

Re: Урок 19. Пишем простой калькулятор

Сообщение Андрей Валентинович » 08 ноя 2015, 22:01

doter.ua писал(а):
Андрей Валентинович писал(а): как добавлять списком? Чтоб один результат не заменял другой, а результаты складывались?
Сделай результат 0, и складывай ответы вместо присвоения.
sum = 0;
...
sum += result;
Всё равно один результат заменяет другой.

Zak_uska
Сообщения: 5
Зарегистрирован: 20 май 2015, 16:56

Re: Урок 19. Пишем простой калькулятор

Сообщение Zak_uska » 24 ноя 2015, 11:31

У меня проблема, выводится на экран null перед началом строки в mResult.setText( r ); и далее цифры как и задумано, как убрать null? я понимаю что проблема в String, но где?

Код: Выделить всё

package net.zak_uska.gridlayouts; 
 
import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
 
public class MainActivity extends Activity { 
    private int mCount = 0; 
    private float result = 0;
    private String r ;
 
    TextView mResult; 
    TextView mResult2; 
 
    /** 
     * Called when the activity is first created. 
     */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.activity_main); 
 
        mResult = (TextView) findViewById(R.id.resmedia);         
        mResult2 = (TextView) findViewById(R.id.resmedia1); 

    } 
 
    public void onButtonClick(View view) { 
        //Вводим переменные, с которыми будем оперировать: 
        float result1 = 0; 
        float result2 = 0; 
                
        switch (view.getId()) { 
            case R.id.btn1: 
                result1 += ++mCount ; 
                result += 1 ;  // это float для подсчета 
                r += 1;  // это String и выводится как текст
                result2 = result / result1; 
                break; 
            case R.id.btn2: 
                result1 += ++mCount ; 
                result += 2 ; 
                r += 2;
                result2 = result / result1; 
                break; 
            case R.id.btn3: 
                result1 += ++mCount ; 
                result += 3 ;
                r += 3; 
                result2 = result / result1; 
                break; 
            case R.id.btn4: 
                result1=+ ++mCount ; 
                result += 4 ; 
                r += 4;
                result2 = result / result1; 
                break; 
            default: 
                break; 
        } 
        //настраиваем отображение результата: 
        mResult.setText( r );   
        //настраиваем отображение результата: 
        mResult2.setText("Средняя "+result2+ " есть"); 
    } 
}  
Решил private String r = new String() ;
И новая проблема с удалением по одной последней введенной цифры. По ходу весь код переписать придётся (
и вот результат на Google Play http://bit.ly/1QZuj4C что мне и нужно было, школята рады и учителя)

WKBAPKA
Сообщения: 32
Зарегистрирован: 03 янв 2014, 14:28

Re: Урок 19. Пишем простой калькулятор

Сообщение WKBAPKA » 31 дек 2015, 14:51

Я вычитал в одной книге реализацию обработки события методом обратного вызова

Код: Выделить всё

    View.OnClickListener mBtnClick = new View.OnClickListener() {
            @Override
            public void onClick(View v) {
            }

        };

промучался несколько часов пока разобрался что куда, но работает

WKBAPKA
Сообщения: 32
Зарегистрирован: 03 янв 2014, 14:28

Re: Урок 19. Пишем простой калькулятор

Сообщение WKBAPKA » 31 дек 2015, 16:30

вот полный код с реализацией метода обратного вызова

Код: Выделить всё

import android.app.Activity;
import android.os.Bundle;
import android.text.TextUtils;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.view.View;


public class MainActivity extends Activity {
    EditText etNum1;
    EditText etNum2;

    Button btnAdd;
    Button btnSub;
    Button btnMult;
    Button btnDiv;

    TextView tvResult;

    String oper = "";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        View.OnClickListener mBtnClick = new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                float num1 =0;
                float num2 =0;
                float result =0;
                if (TextUtils.isEmpty(etNum1.getText().toString())
                        || TextUtils.isEmpty(etNum2.getText().toString())) {
                    return;
                }
                num1 = Float.parseFloat(etNum1.getText().toString());
                num2 = Float.parseFloat(etNum2.getText().toString());

                switch (v.getId()) {
                    case R.id.btnAdd:
                        oper = "+";
                        result = num1 + num2;
                        break;
                    case R.id.btnDiv:
                        oper = "/";
                        result = num1 / num2;
                        break;
                    case R.id.btnMult:
                        oper = "*";
                        result = num1 * num2;
                        break;
                    case R.id.btnSub:
                        oper = "-";
                        result = num1 - num2;
                        break;
                    default:
                        break;

                }
                tvResult.setText(num1 + " " + oper + " " + num2 + " = " + result);
            }

        };



        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        etNum1 = (EditText) findViewById(R.id.etNum1);
        etNum2 = (EditText) findViewById(R.id.etNum2);

        btnAdd = (Button) findViewById(R.id.btnAdd);
        btnDiv = (Button) findViewById(R.id.btnDiv);
        btnMult = (Button) findViewById(R.id.btnMult);
        btnSub = (Button) findViewById(R.id.btnSub);

        btnSub.setOnClickListener(mBtnClick);
        btnDiv.setOnClickListener(mBtnClick);
        btnMult.setOnClickListener(mBtnClick);
        btnAdd.setOnClickListener(mBtnClick);

        tvResult = (TextView) findViewById(R.id.tvResult);
    }
}


Руслан777
Сообщения: 1
Зарегистрирован: 04 янв 2016, 01:12

Re: Урок 19. Пишем простой калькулятор

Сообщение Руслан777 » 04 янв 2016, 01:24

Подскажите пожайлуста как быть с таким результатом(код сильно не менял , как в уроке) result = num2 * 0.075/150/num1, ответ получается например = 6.0Е-4 а должно было 0.0006

Saavinovka
Сообщения: 9
Зарегистрирован: 16 дек 2015, 13:13

Re: Урок 19. Пишем простой калькулятор

Сообщение Saavinovka » 05 янв 2016, 11:07

Руслан777 писал(а):Подскажите пожайлуста как быть с таким результатом(код сильно не менял , как в уроке) result = num2 * 0.075/150/num1, ответ получается например = 6.0Е-4 а должно было 0.0006
ну, по сути, 6.0Е-4 и есть 0,0006. попробуйте явно преобразовать result к строковому типу
tvResult.setText(num1 + " " + oper + " " + num2 + " = " + String.valueOf(result);

real56
Сообщения: 2
Зарегистрирован: 28 янв 2016, 21:34

Re: Урок 19. Пишем простой калькулятор

Сообщение real56 » 06 фев 2016, 13:26

подскажите что не так постоянно сложение

Код: Выделить всё

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import static java.lang.Float.parseFloat;
import static java.lang.String.*;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    Button b1, b2, b3, b4, b5, b6, b7, b8, b9, b0, bm, bp, bu, bd, bpr, br, bc; //17
    TextView text1, text2;
    //String oper1 = "";
    char oper1 = '0';
    double temp = 0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        text1 = (TextView) findViewById(R.id.text1);
        text2 = (TextView) findViewById(R.id.text2);

        b1 = (Button) findViewById(R.id.b1);
        b2 = (Button) findViewById(R.id.b2);
        b3 = (Button) findViewById(R.id.b3);
        b4 = (Button) findViewById(R.id.b4);
        b5 = (Button) findViewById(R.id.b5);
        b6 = (Button) findViewById(R.id.b6);
        b7 = (Button) findViewById(R.id.b7);
        b8 = (Button) findViewById(R.id.b8);
        b9 = (Button) findViewById(R.id.b9);
        b0 = (Button) findViewById(R.id.b0);
        bm = (Button) findViewById(R.id.bm);
        bp = (Button) findViewById(R.id.bp);
        bu = (Button) findViewById(R.id.bu);
        bd = (Button) findViewById(R.id.bd);
        bpr = (Button) findViewById(R.id.bpr);
        br = (Button) findViewById(R.id.br);
        bc = (Button) findViewById(R.id.bc);

        b1.setOnClickListener(this);
        b2.setOnClickListener(this);
        b3.setOnClickListener(this);
        b4.setOnClickListener(this);
        b5.setOnClickListener(this);
        b6.setOnClickListener(this);
        b7.setOnClickListener(this);
        b8.setOnClickListener(this);
        b9.setOnClickListener(this);
        b0.setOnClickListener(this);
        bp.setOnClickListener(this);
        bm.setOnClickListener(this);
        bd.setOnClickListener(this);
        bu.setOnClickListener(this);
        bpr.setOnClickListener(this);
        br.setOnClickListener(this);
        bc.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
//        float num1 = 0;
//        float num2 = 0;
//        float result = 0;

        switch (v.getId()) {
//Дообавлени текста в поле text1
            case R.id.b1:
                text1.setText(text1.getText() + "1");
                break;
            case R.id.b2:
                text1.setText(text1.getText() + "2");
                break;
            case R.id.b3:
                text1.setText(text1.getText() + "3");
                break;
            case R.id.b4:
                text1.setText(text1.getText() + "4");
                break;
            case R.id.b5:
                text1.setText(text1.getText() + "5");
                break;
            case R.id.b6:
                text1.setText(text1.getText() + "6");
                break;
            case R.id.b7:
                text1.setText(text1.getText() + "7");
                break;
            case R.id.b8:
                text1.setText(text1.getText() + "8");
                break;
            case R.id.b9:
                text1.setText(text1.getText() + "9");
                break;
            case R.id.b0:
                text1.setText(text1.getText() + "0");
                break;
//Операции
            case R.id.bp:
                oper1 = '+';
                temp = Double.valueOf(valueOf(text1.getText()));
                text1.setText("");
                break;
            case R.id.bm:
                oper1 = '-';
                temp = Double.valueOf(valueOf(text1.getText()));
                text1.setText("");
                break;
            case R.id.bu:
                oper1 = '*';
                temp = Double.valueOf(valueOf(text1.getText()));
                text1.setText("");
                break;
            case R.id.bd:
                oper1 = '/';
                temp = Double.valueOf(valueOf(text1.getText()));
                text1.setText("");
                break;

            case R.id.br:
            case '+':
                text2.setText(valueOf(temp + Double.valueOf(valueOf(text1.getText()))));
                break;
            case '-':
                text2.setText(valueOf(temp - Double.valueOf(valueOf(text1.getText()))));
                break;
            case R.id.bc:
                temp = 0;
                text1.setText("");
                text2.setText("");
                break;
            default:
                break;

drkoh
Сообщения: 1
Зарегистрирован: 11 фев 2016, 12:05

Re: Урок 19. Пишем простой калькулятор

Сообщение drkoh » 12 фев 2016, 12:05

Zak_uska писал(а):У меня проблема, выводится на экран null
и вот результат на Google Play http://bit.ly/1QZuj4C что мне и нужно было, школята рады и учителя)
Только русский язык бы подучить.. "Расчитай среднею" - это сильно...

xebeche
Сообщения: 1
Зарегистрирован: 15 май 2016, 10:36

Re: Урок 19. Пишем простой калькулятор

Сообщение xebeche » 15 май 2016, 10:52

Ребят, я пытаюсь написать калькулятор немного по-другому. Конструктором switch в поле textView выставляется оператор, а следующий конструктор свич должен считать оператор с textview и уже выполнить логику. Как мне указать в switch что он должен считать с текствью символ?
вот
Вложения
calc.png
calc.png (33.72 КБ) 16873 просмотра

DreadThar
Сообщения: 1
Зарегистрирован: 13 июн 2016, 14:03

Re: Урок 19. Пишем простой калькулятор

Сообщение DreadThar » 13 июн 2016, 14:14

Хороший алгоритм калькулятора, не составит труда переделать под Android
https://github.com/indy256/codelibrary/ ... Calc2.java

Johniker
Сообщения: 1
Зарегистрирован: 05 ноя 2016, 23:41

Re: Урок 19. Пишем простой калькулятор

Сообщение Johniker » 05 ноя 2016, 23:50

Хочу что бы вместо очистки полей из меню, была возможность очистки через кнопку. Для этого создал кнопку c id/btnDelete, все прописал, но при нажатии поля etNum1 и etNum2 очищаются, а tvResult нет. В чем может быть проблема?

Код: Выделить всё

package com.example.p0191_simplecalculator;

import android.content.ClipData;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    EditText etNum1, etNum2;
    Button btnAdd, btnSub, btnMult, btnDiv;
    Button btnDelete, btnExit;
    TextView tvResult;

    String oper = "";

    final int MENU_RESET_ID = 1;
    final int MENU_QUIT_ID = 2;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        etNum1 = (EditText) findViewById(R.id.etNum1);
        etNum2 = (EditText) findViewById(R.id.etNum2);
        btnAdd = (Button) findViewById(R.id.btnAdd);
        btnSub = (Button) findViewById(R.id.btnSub);
        btnMult = (Button) findViewById(R.id.btnMult);
        btnDiv = (Button) findViewById(R.id.btnDiv);
        btnDelete = (Button) findViewById(R.id.btnDelete);
        btnExit = (Button) findViewById(R.id.btnExit);

        tvResult = (TextView) findViewById(R.id.tvResult);

        // Прописываем обработчик
        btnAdd.setOnClickListener(this);
        btnSub.setOnClickListener(this);
        btnMult.setOnClickListener(this);
        btnDiv.setOnClickListener(this);
        btnDelete.setOnClickListener(this);
        btnExit.setOnClickListener(this);

    }
    // создание меню
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        menu.add(0, MENU_RESET_ID, 0, "Сброс");
        menu.add(0, MENU_QUIT_ID, 0, "Выход");
        return super.onCreateOptionsMenu(menu);
    }

    //Обработка нажатий на пункты меню
    public boolean onOptionsItemSelected (MenuItem item){
        switch (item.getItemId()){
            case MENU_RESET_ID:
                etNum1.setText("");
                etNum2.setText("");
                tvResult.setText("");
                Toast.makeText(this, "Очищено",Toast.LENGTH_SHORT).show();
                break;
            case MENU_QUIT_ID:
                finish();
                break;
        }
        return super.onOptionsItemSelected(item);
    }

    @Override
    public void onClick(View v) {
        float num1 = 0;
        float num2 = 0;
        float result = 0;

       //Проверяем поля на пустоту
        if (TextUtils.isEmpty(etNum1.getText().toString()) || TextUtils.isEmpty(etNum2.getText().toString())){
            Toast.makeText(this, "Введите значения в поля", Toast.LENGTH_SHORT).show();
            return;
        }
        // читаем EditText и заполняем переменные числами
        num1 = Float.parseFloat(etNum1.getText().toString());
        num2 = Float.parseFloat(etNum2.getText().toString());

        // определяем нажатую кнопку и выполняем соответствующую операцию
        // в oper пишем операцию, потом будем использовать в выводе
        switch (v.getId()) {
            case R.id.btnAdd:
                oper = "+";
                result = num1 + num2;

                break;
            case R.id.btnSub:
                oper = "-";
                result = num1 - num2;

                break;
            case R.id.btnMult:
                oper = "*";
                result = num1 * num2;

                break;
            case R.id.btnDiv:
                oper = "/";
                result = num1 / num2;

                if (num2==0) {tvResult.setText("На ноль делить нельзя");
                    etNum2.setText("");
                    return; }
                break;
            case R.id.btnExit:
                finish();
                break;
            case R.id.btnDelete:
                etNum1.setText("");
                etNum2.setText("");
                tvResult.setText("");
                break;
            default:
                break;
        }
        // формируем строку вывода
        tvResult.setText(num1 + " " + oper + " " + num2 + " = " + result );
    }

}


Аватара пользователя
Foxy
Сообщения: 13
Зарегистрирован: 15 дек 2016, 14:57
Откуда: Volgograd
Контактная информация:

Re: Урок 19. Пишем простой калькулятор

Сообщение Foxy » 15 дек 2016, 15:06

Ребят, всем привет :)
Вот столкнулся с проблемой уже не в первый раз, не получается использовать Activity как обработчик, но до этого исправлял все простым созданием отельного обработчика OnClickListener.
Вроде все как положено, изменяю вот эту строчку:

Код: Выделить всё

public class MainActivity extends AppCompatActivity
на такую:

Код: Выделить всё

public class MainActivity extends AppCompatActivity implements View.OnClickListener
Но она подчеркивается красным, всплывающая подсказка говорит:
Class must either be declared abstract or implement abstract method

Погуглил, говорят надо дописать @Override.. Но что-то по-моему проблема в другом.

oleg_en
Сообщения: 11
Зарегистрирован: 03 янв 2014, 21:37
Контактная информация:

Re: Урок 19. Пишем простой калькулятор

Сообщение oleg_en » 15 дек 2016, 16:38

Foxy писал(а):Ребят, всем привет :)
Вот столкнулся с проблемой уже не в первый раз, не получается использовать Activity как обработчик, но до этого исправлял все простым созданием отельного обработчика OnClickListener.
Вроде все как положено, изменяю вот эту строчку:

Код: Выделить всё

public class MainActivity extends AppCompatActivity
на такую:

Код: Выделить всё

public class MainActivity extends AppCompatActivity implements View.OnClickListener
Но она подчеркивается красным, всплывающая подсказка говорит:
Class must either be declared abstract or implement abstract method

Погуглил, говорят надо дописать @Override.. Но что-то по-моему проблема в другом.
Привет, все нормально. Ты имплементировал интерфейс, теперь обязательно должен переопределить методы. Стань на строчку и нажми CTRL + I и выбери методы, студия их сгенерирует. После этого можно указывать Activity в обработчиках. Например btn.SetOnClickListener(this)

Аватара пользователя
Foxy
Сообщения: 13
Зарегистрирован: 15 дек 2016, 14:57
Откуда: Volgograd
Контактная информация:

Re: Урок 19. Пишем простой калькулятор

Сообщение Foxy » 16 дек 2016, 13:12

voleg_en, вот как, благодарю! Опробую сегодня..

johnrich
Сообщения: 1
Зарегистрирован: 03 янв 2017, 22:21

Re: Урок 19. Пишем простой калькулятор

Сообщение johnrich » 03 янв 2017, 22:23

Если быть честным я реально начал с нуля и недавно но цель изучить хорошенько и как можно больше.
Если это всё ещё активно я не смог придумать или т.п. как мне сделать чтобы не возможно было делить на ноль, подскажите люди добрые.

oleg_en
Сообщения: 11
Зарегистрирован: 03 янв 2014, 21:37
Контактная информация:

Re: Урок 19. Пишем простой калькулятор

Сообщение oleg_en » 04 янв 2017, 09:47

johnrich писал(а):Если быть честным я реально начал с нуля и недавно но цель изучить хорошенько и как можно больше.
Если это всё ещё активно я не смог придумать или т.п. как мне сделать чтобы не возможно было делить на ноль, подскажите люди добрые.
Как вариант, обернуть операцию в try

try {
System.out.println(1/0);
} catch (ArithmeticException e) {
System.out.println("Произошла недопустимая арифметическая операция");
}

zzFraerOKzz
Сообщения: 2
Зарегистрирован: 10 дек 2016, 11:51

Re: Урок 19. Пишем простой калькулятор

Сообщение zzFraerOKzz » 04 янв 2017, 10:03

Понимаю что пишу не по теме но написал по теме месяц игнорируют пост поэтому уже простите пишу просто в активную тему Помогите с Уроком №3 ???

oleg_en
Сообщения: 11
Зарегистрирован: 03 янв 2014, 21:37
Контактная информация:

Re: Урок 19. Пишем простой калькулятор

Сообщение oleg_en » 04 янв 2017, 10:11

zzFraerOKzz писал(а):Понимаю что пишу не по теме но написал по теме месяц игнорируют пост поэтому уже простите пишу просто в активную тему Помогите с Уроком №3 ???
Подробнее ...

Iosif
Сообщения: 1
Зарегистрирован: 06 фев 2017, 15:57

Re: Урок 19. Пишем простой калькулятор

Сообщение Iosif » 06 фев 2017, 16:04

Не появляется меню с очисткой полей и выхода из приложения, подскажите, что не так сделал:


полный код:

package ru.startandroid.develop.calculator;

import android.app.Activity;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity implements View.OnClickListener {

EditText etNum1;
EditText etNum2;

Button btnAdd;
Button btnSub;
Button btnMult;
Button btnDiv;

TextView tvResult;

String oper = "";
final int MENU_RESET_ID = 1;
final int MENU_QUIT_ID = 2;

/** Called when the activity is first created. */
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

// находим элементы
etNum1 = (EditText) findViewById(R.id.etNum1);
etNum2 = (EditText) findViewById(R.id.etNum2);

btnAdd = (Button) findViewById(R.id.btnAdd);
btnSub = (Button) findViewById(R.id.btnSub);
btnMult = (Button) findViewById(R.id.btnMult);
btnDiv = (Button) findViewById(R.id.btnDiv);

tvResult = (TextView) findViewById(R.id.tvResult);

// прописываем обработчик
btnAdd.setOnClickListener(this);
btnSub.setOnClickListener(this);
btnMult.setOnClickListener(this);
btnDiv.setOnClickListener(this);

}
// создание меню
@Override
public boolean onCreateOptionsMenu(Menu menu) {
menu.add(0, MENU_RESET_ID, 0, "Reset");
menu.add(0, MENU_QUIT_ID, 0, "Quit");
return super.onCreateOptionsMenu(menu);
}

// обработка нажатий на пункты меню
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case MENU_RESET_ID:
// очищаем поля
etNum1.setText("");
etNum2.setText("");
tvResult.setText("");
Toast.makeText(this, "Очищено",Toast.LENGTH_SHORT).show();
break;
case MENU_QUIT_ID:
// выход из приложения
finish();
break;
}
return super.onOptionsItemSelected(item);

}


@Override
public void onClick(View v) {
// TODO Auto-generated method stub
float num1 = 0;
float num2 = 0;
float result = 0;

//Проверяем поля на пустоту
if (TextUtils.isEmpty(etNum1.getText().toString()) || TextUtils.isEmpty(etNum2.getText().toString())){
Toast.makeText(this, "Введите значения в поля", Toast.LENGTH_SHORT).show();
return;
}
// читаем EditText и заполняем переменные числами
num1 = Float.parseFloat(etNum1.getText().toString());
num2 = Float.parseFloat(etNum2.getText().toString());

// определяем нажатую кнопку и выполняем соответствующую операцию
// в oper пишем операцию, потом будем использовать в выводе
switch (v.getId()) {
case R.id.btnAdd:
oper = "+";
result = num1 + num2;
break;
case R.id.btnSub:
oper = "-";
result = num1 - num2;
break;
case R.id.btnMult:
oper = "*";
result = num1 * num2;
break;
case R.id.btnDiv:
oper = "/";
result = num1 / num2;
break;
default:
break;
}

// формируем строку вывода
tvResult.setText(num1 + " " + oper + " " + num2 + " = " + result);
}
}

Ответить