首先,看一下效果图
MainActivity如下:
/**
* Demo描述:
* 自定义控件实现带清除功能的EditText
*
* 学习资料:
* http://blog.csdn.net/xiaanming/article/details/11066685
*
* Thank you very much
*/
public class MainActivity extends Activity {
private CleanableEditText mUserNameCleanableEditText;
private CleanableEditText mPassWordCleanableEditText;
private Button mLoginButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
init();
}
private void init(){
mUserNameCleanableEditText=(CleanableEditText) findViewById(R.id.userNameEditText);
mPassWordCleanableEditText=(CleanableEditText) findViewById(R.id.passwordEditText);
mLoginButton=(Button) findViewById(R.id.loginButton);
mLoginButton.setOnClickListener(new OnClickListenerImpl());
}
private class OnClickListenerImpl implements OnClickListener {
@Override
public void onClick(View view) {
if (TextUtils.isEmpty(mUserNameCleanableEditText.getText())) {
mUserNameCleanableEditText.setShakeAnimation();
Toast.makeText(MainActivity.this, "请输入用户名", Toast.LENGTH_SHORT).show();
}
if (TextUtils.isEmpty(mPassWordCleanableEditText.getText())) {
mPassWordCleanableEditText.setShakeAnimation();
Toast.makeText(MainActivity.this, "请输入密码", Toast.LENGTH_SHORT).show();
}
}
}
}
CleanableEditText如下:
/**
* 在焦点变化时和输入内容发生变化时均要判断是否显示右边clean图标
*/