0

我正在使用 RedMadRobot 的 input-mask-android 库将输入掩码设置为 EditText 以输入电话号码。

public class MainActivity extends AppCompatActivity {

    static String INPUT_MASK_PHONE = "{998} [00] [000]-[00]-[00]";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        EditText login = (EditText) findViewById(R.id.login);

        MaskedTextChangedListener maskedTextChangedListener = new MaskedTextChangedListener(
                INPUT_MASK_PHONE,
                true,
                login,
                null,
                new MaskedTextChangedListener.ValueListener() {
                    @Override
                    public void onTextChanged(boolean b, @NotNull String s) {

                    }
                }
        );

        login.addTextChangedListener(maskedTextChangedListener);
        login.setSelection(login.length());

    }

}

我正在设置“998”,当用户尝试删除时不应将其删除。现在可以删除“998”。

<EditText
    android:id="@+id/login"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:inputType="phone"
    android:text="998"/>

如何使'998'不可移除?

4

1 回答 1

0

试试这个样本

private final String mMobileInitial ="+974 ";
EditText login = (EditText) findViewById(R.id.login);
login.setText(mMobileInitial);
Selection.setSelection(login.getText(), login.getText().length());
        login.addTextChangedListener(new TextWatcher() {
            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
            }
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count,
                                          int after) {
            }
            @Override
            public void afterTextChanged(Editable s) {
                if(!s.toString().startsWith(mMobileInitial)){
                    login.setText(mMobileInitial);
                    Selection.setSelection(login.getText(), login.getText().length());
                }
            }
        });
于 2017-09-11T07:26:24.583 回答