2011-03-15 20 views
50

Estoy tratando de establecer 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 se ha definido ningún error del controlador.Borrar texto en EditText cuando se ingresa

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(""); 
    } 
} 
+0

Gracias a todos! ¿Hay alguna razón por la que debo declararlo después? – locoboy

+2

¡Sip! primero debe llamar a setContentView (id). Para que el sistema pueda mostrar el contenido de la pantalla, y luego señale el texto de edición que probablemente existirá en los contenidos de su pantalla. De lo contrario, mostrará una excepción con el cuadro de diálogo Cerrar fuerza. –

+0

También puede lograr la misma funcionalidad configurando la propiedad de sugerencia de un texto de edición. Solo tiene que configurar el texto en la propiedad de la pista y se logrará la misma funcionalidad. – bhavindesai

Respuesta

56

Primero debe llamar al setContentView(R.layout.main) y luego todas las demás inicializaciones.

Por favor intente abajo 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.setText(""); 
    } 
} 
7

El código debería 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(""); 
       } 
      } 
     } 
3
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(""); 
    } 
} 
1

no sé qué errores que hice mientras se implementan las soluciones anteriores, bt no tuvieron éxito para mí

txtDeck.setOnFocusChangeListener(new OnFocusChangeListener() { 
    @Override  
    public void onFocusChange(View v, boolean hasFocus) { 
     txtDeck.setText(""); 
    } 
}); 

Esto funciona para mí,

137

También puede utilizar código de abajo

editText.getText().clear(); 
+0

Esto es genial si lo que quieres hacer es programarticly. –

+0

no hay un método claro(); para el texto de edición –

+0

Ali, tienes toda la razón. Pero llamamos al método getText() primero. Nos devuelve una instancia Editable, que tiene el método clear(); –

1

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

Nombre = (EditarTexto) 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 aclarar las palabras claves incorrectas que ha escrito en lo que en lugar de pulsar la tecla de retroceso y otra vez que puede, simplemente haga clic en el botón para borrar everything.It trabajado para mí. Hope Helps

29

simplemente use el atributo android:hint en su EditText. Este texto aparece cuando el cuadro está vacío y no está enfocado, pero desaparece al seleccionar el cuadro Editar texto.

+0

esta debería ser la respuesta aceptada, +1 por simplicidad. –

2
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(); 

      } 
     }); 
    } 


} 
+0

No publique todo su código, por favor proporcione la solución necesaria para que los ayude a comprender fácilmente –

2

Muy simple para borrar los valores de edición de texto. Cuando hace clic en el botón, solo sigue 1 línea de código.

botón dentro o en cualquier lugar u want.Only utilizar este

editText.setText(""); 
0
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; 
    }); 
0

estableciendo Cadena vacía puede borrar su EditarTexto

editext.setText(""); 
Cuestiones relacionadas