¿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:
- Cómo resolver No se puede conectar al editor para recuperar el error de texto
- Android Cómo establecer límite máximo de "palabra" en EditText
- Detectar si el contenido de EditText fue modificado por el usuario o por programa?
- UITextView en Android (¿Qué es EditText?)
- Force FullScreen en EditText en Android
<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.
- EditText en ListView es actualizado por onTextChanged al desplazarse
- Problema con SQLite DB para Android
- Buscar Editar texto como Google Play
- Android: maneja "Enter" en un EditText
- Cómo hacer que la altura de la caja EditText se expanda
- Android: EditText no puede obtener el foco después de volver a habilitarse
- RequestFocus no funciona
- AfterTextChanged () se llama llamada de retorno sin que el texto se cambie realmente
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; } } }
- IntelliJ IDEA 12 clase duplicada R.java y BuildConfig.java
- Android: cambia dinámicamente TextView Color de fondo