Działania matematyczne na liczbach z textField

0

Zaczynam dopiero zabawę z Androidem i nie mogę się uporać z danym problemem:
działania, mnożenie, dzielenie, dodawanie liczb z text fielda

Na pewno CharSequence leci do wyrzucenia.

    public void Zdarzenie (View widok)
    {
    	float wynik;
    	EditText Pole = (EditText) findViewById(R.id.editText1);
    	EditText Pole2 = (EditText) findViewById(R.id.editText2);
    	CharSequence Tekst = Pole.getText();
    	CharSequence Tekst2 = Pole2.getText();
    	wynik = Tekst * Tekst2;
    	Toast Komunikat = Toast.makeText(getApplicationContext(), Tekst, Toast.LENGTH_SHORT);
    	Komunikat.show();
    			
    }
2

Można do tego podejść np. w ten sposób:

String firstNumberString = ((EditText)findViewById(R.id.editText1)).getText().toString();
Double firstNumber = Double.parseDouble(firstNumberString);

Jak masz liczbę w postaci Double, to operacje o które pytasz prosto jest wykonać.

Oczywiście trzeba pamiętać o dodaniu obsługi błędów w momencie gdy w pola EditText jest wpisane coś innego niż liczba.

0

Działania wykonuje się na liczbach a nie stringach więc musisz konwertować string na liczbę:

int number = Integer.valueOf(Pole.getText().toString());

lub

float number = Float.valueOf(Pole.getText().toString());

ewentualnie zamiast ValueOf można użyć odpowiednio parseInt i parseFloat
Pasowao by też obsłużyć ew. błędy aby program był idiotoodporny gdy ktoś wpisze inne znaki.

0

Jeszcze pytanie: Czy jest możliwość wyświetlenia przez TextView danego wyniku? Wiem, że da się to zrobić na text fields.

    	TextView wyniktxt;
    	double wynik;
    	EditText Pole = (EditText) findViewById(R.id.editText1);
    	EditText Pole2 = (EditText) findViewById(R.id.editText2);
    	String firstNumberString = ((EditText)findViewById(R.id.editText1)).getText().toString();
    	Double firstNumber = Double.parseDouble(firstNumberString);
    	String firstNumberString2 = ((EditText)findViewById(R.id.editText2)).getText().toString();
    	Double firstNumber2 = Double.parseDouble(firstNumberString);
    	wynik = firstNumber * firstNumber2;
    	wyniktxt = (TextView) findViewById(R.id.wyniktxt);
    	wyniktxt.setText(wynik);

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