Kalkulator Android

0

Witam, jestem zielony w programowaniu, ale zacząłem się uczyć tworzenia aplikacji na androida w Android Studio.
Wymyśliłem sobie program, który będzie jakby księgą przychodów i rozchodów, czyli np. mamy na koncie 500zł, nasza aplikacja to pamięta, no i wydaliśmy 20zł, więc w aplikacji wpisujemy 20zł, klikamy odejmij i aplikacja wyświetla nam 480zł. Pewnie banał :P

  public void onClick(View v) {
        String num1 = etFirstNumber.getText().toString();
        int wyn=0;
        switch (v.getId()) {
            case R.id.btnAdd:

                if (wyn == 0) {
                    wynik.setText(String.valueOf(num1));
                }
                else if(wyn!=0) {
                    int dodawanie = Integer.parseInt(String.valueOf((wyn))) + Integer.parseInt(num1);
                    wynik.setText(String.valueOf(dodawanie));
                }
                break;
            case R.id.btnMin:
                int odejm = Integer.parseInt(String.valueOf(wyn)) - Integer.parseInt(num1);
                wynik.setText(String.valueOf(odejm));
                break;
        }

Skleciłem coś takiego, pierwotne saldo ustawiłem na 0, no i dalej mam problem, jeżeli za pierwszym razem coś dodam i odejmę to działa (ale tylko od liczby "0"), ale już od tej nowej wartości salda nie wiem jak to zrobić. Mógłby mi ktoś pomóc?

0

Może zacznij implementować zmienne troche "wyżej" niż w onClik, gdzie w momencie kliknięcia tworzysz je na nowo, więc nic dziwnego że działa tylko raz

0

Próbowałem wrzucić te zmienne w różne miejsca, to za każdym razem po odpaleniu na virtualu wysypywał mi się program.
Tak w całości wygląda mój kod. W które miejsce te zmienne wrzucić? Muszą być w jakiejś klasie czy jak to ma wyglądać?

package com.kalkulator.kalkulator2;

import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;



public class MainActivity extends AppCompatActivity implements View.OnClickListener {
            private Button btnAdd,btnMin;
            private TextView wynik;
            private EditText etFirstNumber;




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


            Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
            setSupportActionBar(toolbar);

            FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
            fab.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                            .setAction("Action", null).show();

                }
            });
        }


    private void init() {
        btnAdd=(Button)findViewById(R.id.btnAdd);
        btnMin=(Button)findViewById(R.id.btnMin);
        etFirstNumber=(EditText)findViewById(R.id.etFirstNumber);
        wynik=(TextView)findViewById(R.id.wynik);
        btnAdd.setOnClickListener(this);
        btnMin.setOnClickListener(this);

    }


    @Override
    public void onClick(View v) {
        String num1 = etFirstNumber.getText().toString();
        int wyn=0; 
        switch (v.getId()) {
            case R.id.btnAdd:
                if (wyn == 0) {
                    wynik.setText(String.valueOf(num1));
                    break;
                }
                else if(wyn!=0) {
                    int dodawanie = Integer.parseInt(String.valueOf((wyn))) + Integer.parseInt(num1);
                    wynik.setText(String.valueOf(dodawanie));
                    break;
                }

            case R.id.btnMin:
                int odejm = Integer.parseInt(String.valueOf(wyn)) - Integer.parseInt(num1);
                wynik.setText(String.valueOf(odejm));
                break;
        }

    }


}
 
0

Nic nie zmieniłeś w kodzie. Dalej zmienne są tworzone na nowo z każdym klikiem

0

No wiem, wkleiłem teraz kod tak jak był, jak zmieniałem to program się wysypywał. Mógłby mi ktoś napisać w które miejsce i w jaki sposób te zmienne wkleić?

0

W miejsce gdzie cała klasa będzie widziała zmienne a nie tylko metoda.

0

Zawsze Ci odejmuje od 0 przez tą linijkę kodu

int wyn=0;

Twoim zadaniem jest teraz dowiedzieć się jak to zmienić i pochwalić się tym na forum :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1