Estoy tratando de configurar y onclicklistener para que cuando haga clic dentro del elemento edittext borre su contenido actual. hay algo mal aqui? Cuando compilo este código, obtengo un cierre forzado y ActivityManager: No se puede enviar el fragmento DDM 4d505251: no hay un error definido por el controlador.
public class Project extends Activity implements OnClickListener {
/** Called when the activity is first created. */
EditText editText = (EditText)findViewById(R.id.editText1);
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
editText.setOnClickListener(this);
setContentView(R.layout.main);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
editText.setText("");
}
}
android
android-edittext
locoboy
fuente
fuente
EditText editText = (EditText)findViewById(R.id.editText1);
Esta línea aquí debe colocarse dentro del método onCreate. Es una llamada de función por el contexto.findViewById
hasta después de haber llamadosetContentView
.EditText
, lo que hace que muestre un texto cuando esté vacío y que desaparezca cuando el usuario comience a escribir. Agregueandroid:hint="your hint text here"
a suEditText
en xml. Por lo general, se usa una 'sugerencia' para indicar para qué está hecho EditText. Tal vez no sea lo que estás buscando, pero también estaba buscando borrar elEditText
clic hasta que descubrí que la "pista" hizo lo que realmente estaba buscando.Respuestas:
Primero debe llamar y
setContentView(R.layout.main)
luego todas las demás inicializaciones.Pruebe el siguiente código.
public class Trackfolio extends Activity implements OnClickListener { /** Called when the activity is first created. */ public EditText editText; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); editText = (EditText) findViewById(R.id.editText1); editText.setOnClickListener(this); } @Override public void onClick(View v) { editText.getText().clear(); //or you can use editText.setText(""); } }
fuente
.clear
o.setText("")
). ¿Hay alguna diferencia? ¿Cuándo debo usar cuál o son completamente iguales? Gracias.También puede usar el código a continuación
editText.getText().clear();
fuente
simplemente use el
android:hint
atributo en su EditText. Este texto aparece cuando el cuadro está vacío y no enfocado, pero desaparece al seleccionar el cuadro Editar texto.fuente
Podemos borrar los datos de EditText de dos formas
La primera configuración EditText está vacía como la línea de abajo
editext.setText("");
En segundo lugar, borrando datos de EditText como este
editText.getText().clear();
Sugiero una segunda forma
fuente
Tu código debe ser:
public class Project extends Activity implements OnClickListener { /** Called when the activity is first created. */ EditText editText; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); editText = (EditText)findViewById(R.id.editText1); editText.setOnClickListener(this); } @Override public void onClick(View v) { // TODO Auto-generated method stub if(v == editText) { editText.setText(""); } } }
fuente
public EditText editField; public Button clear = null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.text_layout); this. editField = (EditText)findViewById(R.id.userName); this.clear = (Button) findViewById(R.id.clear_button); this.editField.setOnClickListener(this); this.clear.setOnClickListener(this); @Override public void onClick(View v) { // TODO Auto-generated method stub if(v.getId()==R.id.clear_button){ //setText will remove all text that is written by someone editField.setText(""); } }
fuente
Muy simple para borrar los valores de editText. Cuando haga clic en el botón, solo siga el código de 1 línea.
editText.setText("");
fuente
package com.example.sampleproject; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.ImageView; public class SampleProject extends Activity { EditText mSearchpeople; Button mCancel , msearchclose; ImageView mprofile, mContact, mcalender, mConnection, mGroup , mFollowup , msetting , mAddacard; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.dashboard); mSearchpeople = (EditText)findViewById(R.id.editText1); mCancel = (Button)findViewById(R.id.button2); msearchclose = (Button)findViewById(R.id.button1); mprofile = (ImageView)findViewById(R.id.imageView1); mContact = (ImageView)findViewById(R.id.imageView2); mcalender = (ImageView)findViewById(R.id.imageView3); mConnection = (ImageView)findViewById(R.id.imageView4); mGroup = (ImageView)findViewById(R.id.imageView5); mFollowup = (ImageView)findViewById(R.id.imageView6); msetting = (ImageView)findViewById(R.id.imageView7); mAddacard = (ImageView)findViewById(R.id.imageView8); } @Override protected void onResume() { // TODO Auto-generated method stub super.onResume(); mCancel.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub mSearchpeople.clearFocus(); } }); } }
fuente
No sé qué errores cometí al implementar las soluciones anteriores, pero no tuvieron éxito para mí
txtDeck.setOnFocusChangeListener(new OnFocusChangeListener() { @Override public void onFocusChange(View v, boolean hasFocus) { txtDeck.setText(""); } });
Esto funciona para mi
fuente
// Para borrar cuando se hace clic en el botón Borrar
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, por lo que en lugar de presionar la tecla de retroceso una y otra vez, simplemente puede hacer clic en el botón para borrar todo. Espero eso ayude
fuente
final EditText childItem = (EditText) convertView.findViewById(R.id.child_item); childItem.setHint(cellData); childItem.setOnFocusChangeListener(new View.OnFocusChangeListener() { @Override public void onFocusChange(View v, boolean hasFocus) { //Log.d("NNN", "Has focus " + hasFocus); if (hasFocus) { Toast.makeText(ctx.getApplicationContext(), "got the focus", Toast.LENGTH_LONG).show(); } else { Toast.makeText(ctx.getApplicationContext(), "loss the focus", Toast.LENGTH_SHORT).show(); } return; });
fuente
al configurar Cadena vacía puede borrar su texto de edición
editext.setText("");
fuente
En XML puedes escribir como:
<EditText android:id="@+id/txtsearch" android:layout_width="250dp" android:layout_height="match_parent" android:layout_gravity="right" android:layout_weight="1" android:background="@drawable/roundlayoutbutton1" android:ems="10" android:gravity="center" android:inputType="text" android:textAllCaps="true" android:text="search_xxxx" android:textColor="@color/colorPrimaryDark" android:visibility="visible" />
y en la clase java puede tener uno debajo:
EditText searchHost;
OnCreate () escribe:
searchHost=findViewById(R.id.txtsearch); searchHost.setOnFocusChangeListener(new View.OnFocusChangeListener() { @Override public void onFocusChange(View v, boolean hasFocus) { if(searchHost.getText().toString().equalsIgnoreCase("search_xxxx")){ searchHost.setText(""); Toast.makeText(getApplicationContext(),"Enter you text xxx...", Toast.LENGTH_LONG).show(); } } });
Funciona bien para mí.
fuente
Para Kotlin:
Cree dos extensiones, una para EditText y otra para TextView
Editar texto:
fun EditText.clear() { text.clear() }
Vista de texto:
fun TextView.clear() { text = "" }
y úsalo como
myEditText.clear() myTextView.clear()
fuente
Puede usar el atributo 'android: hint' en su EditText también desde el código:
editText.setHint(CharSequence hint / int resid);
Entonces no necesita ningún onClickListener o similar. Pero tenga en cuenta que el valor de la pista no se pasará. El editText permanecerá vacío. En este caso, puede configurar su editText con su valor deflault:
if(editText.getText().toString().equals("")) { ...use your default value instead of the editText... }
fuente
Si el uso de EditText no es obligatorio, puede implementar este comportamiento fácilmente con los nuevos componentes de material:
<com.google.android.material.textfield.TextInputLayout style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="@string/hint_field" app:endIconDrawable="@drawable/ic_close_black_24dp" app:endIconMode="clear_text" app:endIconTint="@color/black"> <com.google.android.material.textfield.TextInputEditText android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="@string/hint_value" android:maxLines="1" android:text="@{itemModel.value}" /> </com.google.android.material.textfield.TextInputLayout>
Solo tienes que especificar el dibujable que deseas para el botón que borrará el texto y la acción que ejecutará. Para borrar el texto, puede usar iconMode = "clear_text", pero también está disponible "password_toggle".
fuente
Es muy sencillo: declarar las variables de widgets (
editText
,textView
,button
etc.) en la clase, pero inicializar enonCreate
despuéssetContentView
.El problema es que cuando intenta acceder a un widget de un diseño, primero debe declarar el diseño. Declarar el diseño es
setContentView
. Y cuando inicializa la variable del widget a través defindViewById
, está accediendo alid
del widget en el diseño principal ensetContentView
.¡Espero que lo obtengas!
fuente
No estoy seguro de si estás buscando este
{ <EditText . . android:hint="Please enter your name here"> }
fuente