samedi 22 août 2015

Delete last 2/3 char of a string on button click (Java/android)

i tried to do a "simple" calculator on android. when i click "Del" button i want that last number is deleted. But when i want to delete "sin", "cos", "tan" or "ln" from the EditText(calulator display) i tried to find a way to delete the last 2/3 char instead of the last one.

this is the method that control on "Del" button click:

public void setDelOnClick() {
    EditText viewCal = (EditText) findViewById(R.id.viewCal);
    int lengthView = viewCal.getText().length();
    String viewCalString = viewCal.getText().toString();
    if(lengthView == 1)
        viewCal.getText().delete(0, 1);
    else if(lengthView > 1) {
        String last2Char = viewCalString.substring(lengthView -2, lengthView);
        switch(last2Char) {
            case "in":
                viewCal.getText().delete(lengthView - 3, lengthView);
                break;
            case "os":
                viewCal.getText().delete(lengthView - 3, lengthView);
                break;
            case "ln":
                viewCal.getText().delete(lengthView - 2, lengthView);
                break;
            default:
                viewCal.getText().delete(lengthView - 1, lengthView);
                break;
        }
    }

}

but it doesn't work and when i try to delete something, CRASH. Can you help me to find a way to delete correctly what is in the calculator display?

Aucun commentaire:

Enregistrer un commentaire