Zmianna wartości zmiennej zadekralowanej w innej klasie

0

Witam ! Dopiero zaczynam przygodę z programowaniem więc pytanie będzie dla większości tu osób banalne ale moje pytanie to :
Zadeklarowałem zmienną 'moneyOncard' w klasie Values

public class Values {
    public int money = 100;
    public int moneyOnCard = 100;
    public int c = moneyOncard * 3;
}

I chciałbym aby co każde naciśnięcie przycisku 'button' do wartości zmiennej była dodawana wartość pola edit text i była zapisywana jako nowa wartość zmiennej k;

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_bank);
        final TextView textView = (TextView) findViewById(R.id.textView22);
        final EditText editText = (EditText) findViewById(R.id.editText);
        Button button = (Button) findViewById(R.id.button);
        TextView textView1 = (TextView) findViewById(R.id.textView27);
        final TextView textView2 = (TextView) findViewById(R.id.textView29);





        Values values = new Values();
        textView.setText("" + values.credit);
        textView1.setText("" + values.money);
        textView2.setText("" + values.moneyOnCard);
//        final int i = i(moneyOnCard, debt);

        //final int a =  i();
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                final int debt = Integer.parseInt(editText.getText().toString());
                    Values values = new Values();
                    values.moneyOnCard = values.moneyOnCard + debt;
                    textView2.setText("" + values.moneyOnCard);





            }

        });
    }

Takie wywołanie powoduje że wyświetla się tylko moneyOnCard + debt ale wartość zmiennej pozostaje taka sama

0

Ziomuś, tworzysz obiekt klasy Values() przy każdym OnClick. Czyli klikniesz 3 razy to masz 3 obiekty, jak to się ma dodawać. Pomyśl chwilę, co żeś narobił.

1

Podpowiedź:

  • o jedno Values values = new Values(); za dużo.
  • trzeba będzie values zrobić polem w klasie.
0

Zmienia się wartość widoku textView2 ale wartość zmiennej dalej jest równa 100

Przecież napisałem, że przy każdym kliknięciu tworzysz nowy obiekt klasy Values, co powoduje nieprawidłowe działanie. Jeżeli obiekt za każdym razem jest nowy, to przyjmuje wartość 100 i nie wie, że istnieją inne obiekty tej klasy. Musisz używać jednego obiektu tej klasy, lub ustawić moneyOnCard jako zmienną statyczną.

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