2011-03-15 26 views
50

Düzenlemek ve onclicklistener ayarlamaya calisiyorum, böylece edittext elemanini tiklatarak mevcut içerigini temizleyecektir. Burada yanlış bir şey mi var? Bu kodu derlediğimde, bir güç çıkması alıyorum ve ActivityManager: DDM yığın 4d505251 gönderilemiyor: işleyici tanımlı bir hata yok.Girildiginde EditText metnini temizle

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

Teşekkür temizleyebilirsiniz kullanmak want.Only! Bunu ilan etmem için bir sebep var mı? – locoboy

+2

Evet! önce setContentView (id) 'i çağırmalısınız. Böylece sistem ekran içeriğini görüntüleyebilir ve ekran içeriğinizde muhtemelen bulunacak EditText'i işaretleyebilirsiniz. Aksi takdirde, Force Close iletişim kutusuyla bir istisna gösterecektir. –

+0

Ayrıca, bir edittext ipucu özelliğini ayarlayarak da aynı işlevsellik elde edebilirsiniz. Metni ipucu özelliği olarak ayarlamanız ve aynı işlevsellik sağlanacaktır. – bhavindesai

cevap

56

Önce tüm diğer başlatmayı setContentView(R.layout.main) aramanız gerekir.

Lütfen aşağıdaki kodu deneyin.

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

Kodunuz olmalıdır:

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

i onlar beni

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

için başarısız olduk bt, yukarıdaki çözümler uygularken yaptıklarını hatalar bilmiyorum Bu benim için çalışıyor,

137

Ayrıca ; Aşağıda

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

Eğer yapmak istiyorsanız bu harika bir programdır. –

+0

hiçbir yöntem yoktur clear(); edittext –

+0

Ali için kesinlikle haklısınız. Ama önce getText() yöntemini çağırıyoruz. Bize yöntem clear(); –

1

// Şeffaf Düğme

Tıklandı

firstName = (EditText) findViewById (R.id.firstName) olduğunda temizlemek için kodu kullanabilirsiniz

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

Bu yeniden geri tuşuna basarak kadar yerine yazdıktan yanlış anahtar kelimeleri temizlemek için yardımcı olacaktır ve yine sadece everything.It Benim için çalıştı temizlemek için düğmeye tıklayabilirsiniz. Umarım

29

, EditText'inizdeki android:hint özniteliğini kullanmanıza yardımcı olur. Bu metin kutu boş olduğunda ve odaklanmadığında görünür, ancak EditText kutusunu seçerek kaybolur.

+0

bu kabul edilebilir cevap olmalı, basitlik için +1. –

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

Tüm kodunuzu yayınlamayın plz, kolayca anlaması için yardım için gerekli çözümü sağlayın –

2

EditText values.when u tıklat düğmesini temizledikten sonra, yalnızca 1 satır kodunu takip edin.

düğmeye İç veya herhangi bir yerde u bu

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

Boş dize ayarlayarak tüm EditText

editext.setText("");