一、设置Filter
// Limit the input ip length
InputFilter inputFilter = new InputFilter() {
@Override
public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
try {
if ((source.toString().length()+dest.toString().length()) > 15) {
return "";
}
return source;
} catch (Exception e) {
e.printStackTrace();
}
return "";
}
};
mEt_IpAddress.setFilters(new InputFilter[]{inputFilter});
二、设置TextWatcher
TextWatcher ipWatcher = new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
mIp = s.toString();
Log.d("IpDialog.java", "Ip=" + mIp);
if (mEt_IpAddress.length() > 0) {
mBtn_Connect.setEnabled(true);
} else {
mBtn_Connect.setEnabled(false);
}
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void afterTextChanged(Editable s) {
int editStart = mEt_IpAddress.getSelectionStart();
int editEnd = mEt_IpAddress.getSelectionEnd();
Log.v("IpDialog", "St=="+editStart+", Ed=="+editEnd);
if (mIp.length() > 15) {
s.delete(editEnd-1, editEnd);
int tempSelection = editStart-1;
mEt_IpAddress.setText(s);
mEt_IpAddress.setSelection(tempSelection);
}
}
};
//mEt_IpAddress.setFilters(new InputFilter[]{inputFilter});
mEt_IpAddress.addTextChangedListener(ipWatcher);