Edittext Focus并点击
问题描述:
我有两个EditText
s。我想先点击第一个EditText
s点击清除第二个和第二个edittext点击清除第一个。所以我试过OnClickListener
和OnTouchListener
。但它不能正常工作。Edittext Focus并点击
et_email.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (!(et_email.getText().toString().equalsIgnoreCase("") && et_mobile.getText().toString().equalsIgnoreCase(""))) {
if (MotionEvent.ACTION_UP == event.getAction()) {
et_mobile.setText("");
et_mobile.setFocusableInTouchMode(true);
et_mobile.setFocusable(true);
et_mobile.requestFocus();
}
return true; // return is important...
} else
return false;
}
});
et_mobile.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (!(et_email.getText().toString().equalsIgnoreCase("") && et_mobile.getText().toString().equalsIgnoreCase(""))) {
if (MotionEvent.ACTION_UP == event.getAction()) {
et_email.setText("");
et_mobile.setFocusableInTouchMode(true);
et_mobile.setFocusable(true);
et_mobile.requestFocus();
}
return true; // return is important...
}
else
return false;
}
});
但问题是,重点是没有设置第一次触摸,而点击并无法清除EditText
。
答
首先添加到您的EDITTEXT布局:
android:focusableInTouchMode="false"
没有这一行,在EditText
将反应触摸模式,只有听你的onClick()你第二次单击EditText
吧。 这将在第一次禁用触摸模式EditText
,和火灾的onClick()
注: Boolean控制视图是否可以采取焦点,而在触摸模式。如果对于视图来说这是正确的,那么该视图可以在被点击时获得焦点,并且如果另一个视图被点击而没有将该属性设置为真,焦点可以保持焦点。
比操作如下: EditText1
EditText et_email = (EditText) findViewById(R.id.yourEditText1);
et_email.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//do this
et_mobile.setText("");
//or this
et_mobile.getText().clear();
}
});
EditText2
EditText et_mobile = (EditText) findViewById(R.id.yourEditText2);
et_mobile.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//do this
et_email.setText("");
//or this
et_email.getText().clear();
}
});
这应该可以帮助你出来。
答
你正在清理第一个一个接触的第一个,改变你的变量名的第一个听众这样
if (!(et_email.getText().toString().equalsIgnoreCase("") && et_mobile.getText().toString().equalsIgnoreCase(""))) {
if (MotionEvent.ACTION_UP == event.getAction()) {
et_mobile.setText("");
et_email.setFocusableInTouchMode(true);
et_email.setFocusable(true);
et_email.requestFocus();
}
return true; // return is important...
} else
答
我希望这个代码可以帮助你(我的作品)
edit1 = (EditText) findViewById(R.id.edit1);
edit2 = (EditText) findViewById(R.id.edit2);
edit1.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
edit2.setText("");
}
});
edit2.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
edit1.setText("");
}
});
发布你的代码.. – sasikumar
你的意思是“它不能正常工作”。 – Jas
对Native方法和变量使用代码格式。它有助于理解这个问题。 –