Unten ist die Methode, die ich programmiert habe, Zahlen für einen Taschenrechner einzugeben. Der Code ist voll funktionsfähig und fehlerfrei.Android - Löschen von Zeichen auf Knopfdruck
Ich versuche herauszufinden, wie ich eine separate Methode namens backspace
schreiben würde, um jeweils ein Zeichen aus der Benutzereingabe zu entfernen.
Um ein Beispiel zu geben, wie onClick1
Werke (nur um es zu machen kristallklar, was ich tun will), wenn ich 2+4*6
eingegeben (Tasten, deren onClick Aktion onClick1
verbunden sind), dann würde textViewCalcHistExp1
den Text anzuzeigen 2+4*6
, und arrayList
würde die folgenden Werte enthalten: [2,+,4,*,6]
.
Ich möchte backspace
so arbeiten, dass, wenn ich die Taste, textViewCalcHistExp1
‚s Display jetzt 2+4*
und arrayList
(mit backspace
Methode verknüpft) geklickt nun folgende Werte würden wäre halten: [2,+,4,*]
. Hier
ist der Code:
ArrayList<String> arrayList = new ArrayList<String>();
String stringInput = "";
String stringInputWithOp = "";
public String prevCalc = "";
public void onClick1 (View view) {
TextView textViewCalcHistExp1 = (TextView) findViewById(R.id.textViewCalcHistExp1);
Button button = (Button) view;
stringInput = (String) button.getText().toString();
if (!stringInput.contains("+") && !stringInput.contains("-") && !stringInput.contains("×") && !stringInput.contains("÷")) {
stringInputWithOp = stringInputWithOp+stringInput;
if (arrayList.size()>0) {
arrayList.remove((arrayList.size()-1));
}
arrayList.add(stringInputWithOp);
}
else {
arrayList.add(stringInput);
arrayList.add(stringInput);
stringInputWithOp="";
}
//This version truncates array formatting i.e. entering "2+4*6" would display "2+4*6"
textViewCalcHistExp1.setText(textViewCalcHistExp1.getText().toString()+stringInput);
//This version leaves array formatting i.e. entering "2+4*6" would display [2,+,4,*,6] ;good for debugging
//textViewCalcHistExp1.setText(arrayList.toString());
}