如何将edittext的前两位数限制为仅68?

时间:2017-10-03 13:02:39

标签: android android-layout android-fragments

<EditText
   android:id="@+id/edit_text"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:background="@drawable/roundededittext"
   android:digits="0123456789"
   android:gravity="center_horizontal"
   android:hint="68 - #######"
   android:maxLength="9" />

如何将android edittext的前两位数限制为仅为68的文本?

3 个答案:

答案 0 :(得分:0)

您始终可以通过编程方式执行此操作。只需在edittext前放置一个不可编辑的文本字段“68”,稍后在程序中添加68。

答案 1 :(得分:0)

在您的活动中尝试此操作

final EditText editext = (EditText) findViewById(R.id.edit_text);

    final String prefix = "68 - ";
    editext.setText(prefix);
    Selection.setSelection(editext.getText(), editext.getText().length());


    editext.addTextChangedListener(new TextWatcher() {

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                // TODO Auto-generated method stub

            }

            @Override
            public void beforeTextChanged(CharSequence s, int start, int count,
                    int after) {
                // TODO Auto-generated method stub

            }

            @Override
            public void afterTextChanged(Editable s) {
                if(!s.toString().startsWith(prefix)){
                    editext.setText(prefix);
                    Selection.setSelection(editext.getText(), editext.getText().length());

                }

            }
        });

答案 2 :(得分:0)

使用addTextChangedListener作为textview,如果lengthAfter小于2或任何你想设置的前缀长度,请检查onTextChanged,并检查输入的文本是6还是68 ..然后将textView中的文字设置为&#34;&#34; ..否则在textview

的文本中附加字符序列