效果:
edittext
获取焦点, 且输入非空内容时,显示删除,
失去焦点 ,不管有没有内容,都不显示删除
代码如下:
mEditText1.addTextChangedListener(this);
mEditText2.addTextChangedListener(this);
mEditText3.addTextChangedListener(this);
mEditText1.setOnFocusChangeListener(this);
mEditText2.setOnFocusChangeListener(this);
mEditText3.setOnFocusChangeListener(this);
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override //内容改变时
public void onTextChanged(CharSequence s, int start, int before, int count) {
mName = mEditText1.getText().toString().trim();
if (mName.length() > 0 && mEditText1.isFocused()) {
mClear1Iv.setVisibility(View.VISIBLE);
} else {
mClear1Iv.setVisibility(View.GONE);
}
mIdCard = mEditText2.getText().toString().trim();
if (mIdCard.length() > 0 && mEditText2.isFocused()) {
mClear2Iv.setVisibility(View.VISIBLE);
} else {
mClear2Iv.setVisibility(View.GONE);
}
mBackNo = mEditText3.getText().toString().trim();
if (mBackNo.length() > 0 && mEditText3.isFocused()) {
mClear3Iv.setVisibility(View.VISIBLE);
} else {
mClear3Iv.setVisibility(View.GONE);
}
}
@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
@Override
public void afterTextChanged(Editable s) {
mName = mEditText1.getText().toString().trim();
mIdCard = mEditText2.getText().toString().trim();
mBackNo = mEditText3.getText().toString().trim();
if (mName.length() > 0 && mIdCard.length() > 0 && mBackNo.length() > 0) {
mBtnCommit.setBackground(getResources().getDrawable(R.drawable.bg_btn_enabled));
mBtnCommit.setEnabled(true);
} else {
mBtnCommit.setBackground(getResources().getDrawable(R.drawable.bg_btn_disabled));
mBtnCommit.setEnabled(false);
}
String str = mBackNo.replace(" ", "");//每隔四位显示一个空格
String result = "";
if (str.length() >= 4) {
mEditText3.removeTextChangedListener(this);
for (int i = 0; i < str.length(); i++) {
result += str.charAt(i);
if ((i + 1) % 4 == 0) {
result += " ";
}
}
if (result.endsWith(" ")) {
result = result.substring(0, result.length() - 1);
}
mEditText3.setText(result);
mEditText3.addTextChangedListener(this);
mEditText3.setSelection(mEditText3.getText().toString().length());//焦点到输入框最后位置
}
}
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
mName = mEditText1.getText().toString().trim();
mIdCard = mEditText2.getText().toString().trim();
mBackNo = mEditText3.getText().toString().trim();
if (mEditText1.isFocused()) {//判断谁获取焦点
if (!TextUtils.isEmpty(mName)) {
mClear1Iv.setVisibility(View.VISIBLE);
}
mClear2Iv.setVisibility(View.GONE);
mClear3Iv.setVisibility(View.GONE);
} else if (mEditText2.isFocused()) {
if (!TextUtils.isEmpty(mIdCard)) {
mClear2Iv.setVisibility(View.VISIBLE);
}
mClear1Iv.setVisibility(View.GONE);
mClear3Iv.setVisibility(View.GONE);
} else if (mEditText3.isFocused()) {
if (!TextUtils.isEmpty(mBackNo)) {
mClear3Iv.setVisibility(View.VISIBLE);
}
mClear1Iv.setVisibility(View.GONE);
mClear2Iv.setVisibility(View.GONE);
}
}
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.commit:
mBtnCommit.setBackgroundDrawable(getResources().getDrawable(R.drawable.bg_btn_disabled));
mBtnCommit.setEnabled(false);
mEditText1.clearFocus();//提交时取消焦点,隐藏删除
mEditText2.clearFocus();
mEditText3.clearFocus();
mClear1Iv.setVisibility(View.GONE);
mClear2Iv.setVisibility(View.GONE);
mClear3Iv.setVisibility(View.GONE);
mName = mEditText1.getText().toString().trim();
mIdCard = mEditText2.getText().toString().trim();
mBackNo = mEditText3.getText().toString().trim().replace(" ", "");
//删除空格
if (TextUtils.isEmpty(mName)) {
ToastUtil.showToast("姓名不能为空");
return;
}
if (TextUtils.isEmpty(mIdCard)) {
ToastUtil.showToast("证件号码不能为空");
return;
} else if (!TextUtils.isEmpty(mIdCard) && !IDCardUtil.isIDCard(mIdCard)) {
ToastUtil.showToast("请输入正确的身份证号码");
return;
}
if (TextUtils.isEmpty(mBackNo)) {
ToastUtil.showToast("银行卡号不能为空");
return;
}
Map<String, String> paramsMap = new HashMap<>();
paramsMap.put("tranCode", "NETL01");
paramsMap.put("name", mName);
paramsMap.put("idNo", mIdCard);
paramsMap.put("accNo", mBackNo);
AsyncTaskUtil.doAsync(Constant.APP_PINGAN, paramsMap, new AsyncCallBack() {
@Override
public void onPostExecute(String response) {
}
});
break;
}
}