studio programacion para móviles libro edición desarrollo desarrollar curso aprende aplicaciones android android-edittext

para - manual de programacion android pdf



¿Cómo borrar un EditText al hacer clic? (11)

¿Está buscando un comportamiento similar a la x que aparece en el lado derecho de los campos de texto en un iphone que borra el texto cuando se toca? Se llama clearButtonMode allí. Aquí es cómo crear esa misma funcionalidad en una vista de Android EditText:

String value = "";//any text you are pre-filling in the EditText final EditText et = new EditText(this); et.setText(value); final Drawable x = getResources().getDrawable(R.drawable.presence_offline);//your x image, this one from standard android images looks pretty good actually x.setBounds(0, 0, x.getIntrinsicWidth(), x.getIntrinsicHeight()); et.setCompoundDrawables(null, null, value.equals("") ? null : x, null); et.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { if (et.getCompoundDrawables()[2] == null) { return false; } if (event.getAction() != MotionEvent.ACTION_UP) { return false; } if (event.getX() > et.getWidth() - et.getPaddingRight() - x.getIntrinsicWidth()) { et.setText(""); et.setCompoundDrawables(null, null, null, null); } return false; } }); et.addTextChangedListener(new TextWatcher() { @Override public void onTextChanged(CharSequence s, int start, int before, int count) { et.setCompoundDrawables(null, null, et.getText().toString().equals("") ? null : x, null); } @Override public void afterTextChanged(Editable arg0) { } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } });

En Android, ¿cómo puedo borrar EditText cuando se hace clic?

Por ejemplo, si tengo un EditText con algunos caracteres, como ''Enter Name'' , cuando el usuario hace clic en él, estos caracteres desaparecen.


// Para borrar cuando se hace clic en el botón Borrar

firstName = (EditText) findViewById (R.id.firstName);

clear = (Button) findViewById(R.id.clearsearchSubmit); clear.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub if (v.getId() == R.id.clearsearchSubmit); firstName.setText(""); } });

Esto ayudará a borrar las palabras clave incorrectas que ha escrito, así que en lugar de presionar el botón de retroceso una y otra vez, simplemente puede hacer clic en el botón para borrar todo. Funcionó para mí. Espero eso ayude


Código para borrar el campo de texto cuando se hace clic

<EditText android:onClick="TextFieldClicked"/> public void TextFieldClicked(View view){ if(view.getId()==R.id.editText1); text.setText(""); }


La respuesta de @ Harris es excelente, la he implementado como una subclase separada de EditText, que puede facilitar su uso si su código ya agrega TextChangedListeners.

Además, lo pellizqué para que, si ya usas cualquier compuesto Drawables, los deje intactos.

El código está aquí, para cualquiera que lo necesite:

package com.companyname.your import android.content.Context; import android.graphics.drawable.Drawable; import android.text.Editable; import android.text.TextWatcher; import android.util.AttributeSet; import android.view.MotionEvent; import android.view.View; import android.widget.EditText; public class ClearableEditText extends EditText { public String defaultValue = ""; final Drawable imgX = getResources().getDrawable(android.R.drawable.presence_offline ); // X image public ClearableEditText(Context context) { super(context); init(); } public ClearableEditText(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); init(); } public ClearableEditText(Context context, AttributeSet attrs) { super(context, attrs); init(); } void init() { // Set bounds of our X button imgX.setBounds(0, 0, imgX.getIntrinsicWidth(), imgX.getIntrinsicHeight()); // There may be initial text in the field, so we may need to display the button manageClearButton(); this.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { ClearableEditText et = ClearableEditText.this; // Is there an X showing? if (et.getCompoundDrawables()[2] == null) return false; // Only do this for up touches if (event.getAction() != MotionEvent.ACTION_UP) return false; // Is touch on our clear button? if (event.getX() > et.getWidth() - et.getPaddingRight() - imgX.getIntrinsicWidth()) { et.setText(""); ClearableEditText.this.removeClearButton(); } return false; } }); this.addTextChangedListener(new TextWatcher() { @Override public void onTextChanged(CharSequence s, int start, int before, int count) { ClearableEditText.this.manageClearButton(); } @Override public void afterTextChanged(Editable arg0) { } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } }); } void manageClearButton() { if (this.getText().toString().equals("") ) removeClearButton(); else addClearButton(); } void addClearButton() { this.setCompoundDrawables(this.getCompoundDrawables()[0], this.getCompoundDrawables()[1], imgX, this.getCompoundDrawables()[3]); } void removeClearButton() { this.setCompoundDrawables(this.getCompoundDrawables()[0], this.getCompoundDrawables()[1], null, this.getCompoundDrawables()[3]); } }


No estoy seguro de si estás detrás de esto, pero prueba este XML:

android:hint="Enter Name"

Muestra ese texto cuando el campo de entrada está vacío, seleccionado o deseleccionado.

O si desea que haga exactamente lo que describió, asigne un onClickListener en editText y establézcalo vacío con setText ().


Para mí, la forma más fácil ... Crear un EditText público, por ejemplo "myEditText1"

public EditText myEditText1;

Luego, conéctelo con EditText, que debería eliminarse

myEditText1 = (EditText) findViewById(R.id.numberfield);

Después de eso, crea un vacío que reaccione con un clic al EditText y deja que borre el texto dentro de él cuando esté enfocado, por ejemplo

@OnClick(R.id.numberfield) void textGone(){ if (myEditText1.isFocused()){ myEditText1.setText(""); } }

Espero poder ayudarte, Que tengas un buen día a todos


Si quiere tener texto en el texto de edición y eliminarlo como dice, intente:

final EditText text_box = (EditText) findViewById(R.id.input_box); text_box.setOnFocusChangeListener(new OnFocusChangeListener() { @Override public void onFocusChange(View v, boolean hasFocus) { if (hasFocus==true) { if (text_box.getText().toString().compareTo("Enter Text")==0) { text_box.setText(""); } } } });


Tenga cuidado al configurar el texto con un onClick oyente en el campo que está configurando el texto. Estaba haciendo esto y estableciendo el texto en una cadena vacía. Esto provocaba que el puntero subiera para indicar dónde estaba mi cursor, que normalmente desaparecerá después de unos segundos. Cuando no esperé a que desapareciera antes de salir de mi página haciendo que se llamara a finish (), podría causar una pérdida de memoria y bloquear mi aplicación. Me tomó un tiempo averiguar qué estaba causando el accidente en este ...

De todos modos, recomendaría usar selectAll () en su oyente de clic en lugar de setText () si puede. De esta forma, una vez que se selecciona el texto, el usuario puede comenzar a escribir y se borrará todo el texto anterior.

imagen del puntero sospechoso: http://i.stack.imgur.com/juJnt.png


después de hacer clic en cualquier acción, haga clic debajo del paso

((EditText) findViewById(R.id.yoursXmlId)).setText("");

o

escribe esto en un archivo XML

<EditText ---------- other stuffs ------ android:hint="Enter Name" />

funciona bien para mí Espero para todos ustedes


eso se llama pista en Android use android: hint = "Enter Name"


((EditText) findViewById(R.id.User)).setText(""); ((EditText) findViewById(R.id.Password)).setText("");