¿Cómo eliminar la última letra de EditText con el botón?

Tengo que los botones que escribe A y B a un edittext. Si hay algo en el edittext, ¿cómo puedo borrar las últimas letras con el botón "Del"?

Mi diseño:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" > <Button android:id="@+id/buttonb" android:layout_width="100dp" android:layout_height="100dp" android:layout_alignParentLeft="true" android:layout_below="@+id/buttona" android:text="@string/buttonb" android:textSize="50sp" android:textStyle="bold" /> <Button android:id="@+id/buttona" android:layout_width="100dp" android:layout_height="100dp" android:layout_alignParentLeft="true" android:layout_centerVertical="true" android:text="@string/buttona" android:textSize="50sp" android:textStyle="bold" /> <Button android:id="@+id/buttondel" android:layout_width="100dp" android:layout_height="100dp" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:text="@string/buttondel" android:textSize="50sp" android:textStyle="bold" /> <EditText android:id="@+id/editText" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:ems="58" android:textSize="20sp" android:textStyle="bold" android:inputType="text" > <requestFocus /> </EditText> </RelativeLayout> 

Y mi java:

 package com.koostamas.keyboard; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.app.Activity; public class MainActivity extends Activity implements OnClickListener { Button buttona, buttondel; EditText editText; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); editText = (EditText) findViewById(R.id.editText); addListenerOnButton(); } public void addListenerOnButton() { buttona = (Button) findViewById(R.id.buttona); buttona.setOnClickListener(this); buttondel = (Button) findViewById(R.id.buttonb); buttondel.setOnClickListener(this); } public void onClick(View v) { switch(v.getId()) { case R.id.buttona : Button buttona = (Button)v; editText.setText(editText.getText().toString()+buttona.getText().toString()); break; case R.id.buttondel : String text = editText.getText().toString(); editText.setText(text.substring(0, text.length() - 1)); break; } } } 

¿Cómo puedo hacerlo? Gracias Inn avance.

Puede recuperar el texto de EditText y luego obtener la sub-string de ese texto y establecer de nuevo ese texto a EditText como a continuación …

 String text = editText.getText().toString(); editText.setText(text.substring(0, text.length() - 1)); 

También puede utilizar el siguiente procedimiento …. será más eficiente.

 int length = editText.getText().length(); if (length > 0) { editText.getText().delete(length - 1, length); } 

Debería usar switch-case como se indica a continuación … y manejar su nuttondel () de la siguiente manera …

 public class MainActivity extends Activity implements OnClickListener { Button buttona, buttonb; Button buttonDel; EditText editText; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); editText = (EditText) findViewById(R.id.editText); addListenerOnButton(); } public void addListenerOnButton() { buttona = (Button) findViewById(R.id.buttona); buttona.setOnClickListener(this); buttonb = (Button) findViewById(R.id.buttonb); buttonb.setOnClickListener(this); buttonDel = (Button) findViewById(R.id.buttondel); buttonDel.setOnClickListener(this); } public void onClick(View v) { switch(v.getId()) { case R.id.buttona: editText.setText(editText.getText().toString()+buttona.getText().toString()); break; case R.id.buttonb: editText.setText(editText.getText().toString()+buttonb.getText().toString()); break; case R.id.buttondel: int length = editText.getText().length(); if (length > 0) { editText.getText().delete(length - 1, length); } break; } } } 

Usando el método substring (), puede hacerlo,

 String str = myEditText.getText().toString(); str = str.substring ( 0, str.length() - 1 ); // Now set this Text to your edit text myEditText.setText ( str ); 

Usted necesita escribir encima de líneas en el método del onClick ().

 str=edittext.gettext+""; str.length(); 

Entonces para loop o str1 = str.substring ( 0, str.length() - 1 );

Puedes hacerlo :-

 import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.app.Activity; public class MainActivity extends Activity implements OnClickListener { Button buttona, buttonb; EditText editText; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); editText = (EditText) findViewById(R.id.editText); addListenerOnButton(); } public void addListenerOnButton() { buttona = (Button) findViewById(R.id.buttona); buttona.setOnClickListener(this); buttonb = (Button) findViewById(R.id.buttonb); buttonb.setOnClickListener(this); } public void onClick(View v) { switch(v.getId()) { case R.id.buttona : //do something break; case R.id.buttondel ://do something break; } } } 
  • ¿Cómo puedo detectar FocusText enfocado en android?
  • Ocultar teclado virtual en la carga de la aplicación
  • No se puede administrar a requestFocus a Spinner
  • TextInputLayout: RuntimeException - No se pudo resolver el atributo en el índice 24
  • Buscar Editar texto como Google Play
  • Android: El tipo de letra se cambia cuando se aplica la contraseña. Escriba en EditarTexto
  • La entrada del teclado de hardware pierde el foco
  • Problema con el campo de contraseña de Android, no ocultando el último carácter escrito
  • Android: inserta texto en EditText en la posición actual
  • Android EditText en longPress: ArrayIndexOutOfBoundsException: length = 15; Index = 491
  • Pantalla completa Con la barra de herramientas y edittext en la parte inferior de Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.