输入时在EditText中清除文本
我试图设置onclicklistener,这样当我点击edittext元素时,它将清除它的当前内容。这里有什么不对吗?当我编译这段代码时,我得到一个强制退出和ActivityManager:无法调度DDM块4d505251:没有处理程序定义的错误。输入时在EditText中清除文本
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("");
}
}
首先你需要调用setContentView(R.layout.main)
然后所有其他的初始化。
请尝试以下代码。
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("");
}
}
你的代码应该是:
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("");
}
}
}
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("");
}
}
我不知道我做了什么错误,在实施上述解决方案,BT尝试失败对我来说
txtDeck.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
txtDeck.setText("");
}
});
这适用于我,
也可以使用下面
editText.getText().clear();
如果你想要做的是编程式的,这很棒。 – 2018-02-15 23:08:55
没有方法clear();对于edittext – 2018-03-01 12:56:02
阿里,你是绝对正确的。但是我们首先调用方法getText()。它返回我们可编辑的实例,它具有方法clear(); – 2018-03-04 20:17:28
//要清除当清除按钮被点击
的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("");
}
});
这将有助于清除您在键入再次按Backspace键,这样,而不是错误的关键字,再只需单击按钮,清除everything.It为我工作。希望它可以帮助
只需在EditText中使用android:hint
属性。当文本框为空且未聚焦时,此文本显示,但在选择EditText框时消失。
这应该是接受的答案,为简单起见+1。 – 2018-02-15 23:08:09
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();
}
});
}
}
不要发布你的整个代码plz提供op的必要解决方案,帮助他们轻松理解 – 2014-02-03 05:59:00
非常简单的清除editText values.when你点击按钮,然后只遵循1行代码。
内部按钮或任何üwant.Only使用
editText.setText("");
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;
});
通过设置空字符串就可以全部清除您的EditText
editext.setText("");
谢谢!是否有我必须申报的理由? – locoboy 2011-03-15 06:34:40
是的!你必须先调用setContentView(id)。以便系统可以显示屏幕内容,然后指出可能存在于屏幕内容中的EditText。否则,它将显示强制关闭对话框的异常。 – 2011-03-15 06:57:11
您还可以通过设置edittext的提示属性来实现相同的功能。你只需要在提示属性中设置文本,就可以实现相同的功能。 – bhavindesai 2011-03-15 06:27:16