在我的活动应用程序,我想设置EditText
我点击里面(焦点)的EditText并键入键清除button
应该出现在右侧的EditText
当EditText上为空时清除按钮必须移除。
但它没有显示给我..
我应该在这里实施哪个事件..? onTouch
或onFocusChange
或addTextChangedListener
还有什么代码..?下面的代码我已经做过的事情...
秀复合绘制到的EditText事件
:
clear = getResources().getDrawable(R.drawable.round_clear);
clear.setBounds(0, 0, clear.getIntrinsicWidth(), clear.getIntrinsicHeight());
和事件作为
@Override
public void onFocusChange(View v, boolean hasFocus)
{
switch (v.getId())
{
case R.id.uIDEditText:
if(hasFocus && !uIDEditText.getText().toString().isEmpty())
uIDEditText.setCompoundDrawables(null, null, clear, null);
else
uIDEditText.setCompoundDrawables(null, null, null, null);
break;
case R.id.pwdEditText:
if(hasFocus && !pwdEditText.getText().toString().isEmpty())
pwdEditText.setCompoundDrawables(null, null, clear, null);
else
pwdEditText.setCompoundDrawables(null, null, null, null);
break;
}
}
另一个事件是:
@Override
public boolean onTouch(View v, MotionEvent event)
{
switch (v.getId())
{
case R.id.uIDEditText:
final int x = (int)event.getX();
final int y = (int)event.getY();
if(event.getAction() == MotionEvent.ACTION_UP && clear!=null) {
Rect rBounds = clear.getBounds();
int n1 = v.getRight();
int n2 = v.getRight()+rBounds.width();
int n3 = v.getPaddingTop();
int n4 = v.getHeight()-v.getPaddingBottom();
if(x>=(n1) && x<=(n2) && y>=n3 && y<=(n4))
{
uIDEditText.setText("");
event.setAction(MotionEvent.ACTION_CANCEL);
}
}
break;
}
}
什么是清晰变量在这里? – Rajesh 2016-11-18 12:35:17
@Rajesh clear是Drawable变量,你必须在OnCreate()中标识它。这里'drawable/round_clear“' – Pravin 2016-12-19 13:55:18