gpt4 book ai didi

android - 在Android中自动在电话号码中添加破折号

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:51:30 26 4
gpt4 key购买 nike

而不是 5118710,它应该是 511-8710。我想在用户已经在 EditText 中输入 3 位数字后添加破折号。 EditText 的最大长度仅为 7 位。

想通了上面的问题后,我又陷入了coding。当我已经输入 3 位数字时,它会附加破折号(这就是我想要发生的事情)但我的问题是接下来的 3 位数字也会附加破折号 (像这样:511-871-)...请帮我解决这个问题。谢谢!

    txt_HomeNo.addTextChangedListener(new TextWatcher() {

@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {

boolean flag = true;
String eachBlock[] = txt_HomeNo.getText().toString().split("-");
for (int i = 0; i < eachBlock.length; i++) {
if (eachBlock[i].length() > 3) {
flag = false;
}
}

if (flag) {

txt_HomeNo.setOnKeyListener(new OnKeyListener() {

@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {

if (keyCode == KeyEvent.KEYCODE_DEL)
keyDel = 1;
return false;
}
});

if (keyDel == 0) {

if (((txt_HomeNo.getText().length() + 1) % 4) == 0) {

if (txt_HomeNo.getText().toString().split("-").length <= 3) {
txt_HomeNo.setText(txt_HomeNo.getText() + "-");
txt_HomeNo.setSelection(txt_HomeNo.getText().length());
}
}
a = txt_HomeNo.getText().toString();
} else {
a = txt_HomeNo.getText().toString();
keyDel = 0;
}

} else {
txt_HomeNo.setText(a);
}

}

最佳答案

最直接的解决方案是使用 PhoneNumberFormattingTextWatcher这将根据系统区域设置格式化数字。

XML:

<EditText
android:id="@+id/phone_number"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/enter_phone_number"
android:inputType="phone" />

在你的类中添加 addTextChangedListener():

EditText phoneNumber = (EditText)findViewById(R.id.phone_number);
phoneNumber.addTextChangedListener(new PhoneNumberFormattingTextWatcher());

关于android - 在Android中自动在电话号码中添加破折号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16975304/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com