我的情况是,我想在输入邮政编码时在第三位插入一个“-”。(例如 100-0001)。没有其他字符不允许进入。我在 xml 中设置了我的 EditText,
<EditText
android:id="@+id/etPostalCode"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:imeOptions="actionDone"
android:inputType="number"
android:digits="0,1,2,3,4,5,6,7,8,9,-"
android:singleLine="true"
android:maxLength="8"/>
在我的代码中,我添加了文本更改侦听器
etPostalCode.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
if (!s.toString().contains("-") && s.length() > 3) {
s.insert(3, "-");
}
}
});
通过这种方式,我解决了我的问题...如果有其他更好的选择,请建议我其他方式...