各位,新建SIM卡联系人时,在用户输入过程中进行长度限制以符合SIM对联系人姓名长度的限制,比如说在英语状态下,SIM卡对用户姓名限制的长度为14位,现需要当用户在输入到14个字符时就不能再继续输入了(可以删除),而且弹出相应的提示。最好能够详细点,因为对android源码不太熟,谢谢了

解决方案 »

  1.   

    android 7.0的系统
      

  2.   

    EditText.addTextChangedListener(new TextWatcher(){....})
    做输入监控
      

  3.   

    用于填写sim卡联系人名称的edittext本身是动态加载的,已经有textchangedListener了,
      

  4.   

     fieldView.addTextChangedListener(new TextWatcher() {
                    @Override
                    public void afterTextChanged(Editable s) {
                        // Trigger event for newly changed value
                        onFieldChanged(column, s.toString());
                        //M:OP01 RCS will listen phone number text change.@{
                        ExtensionManager.getInstance().getRcsExtension().
                                setTextChangedListener(state, fieldView, inputType, s.toString());
                        /** @} */
                    }                @Override
                    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
                    }                @Override
                    public void onTextChanged(CharSequence s, int start, int before, int count) {
                        if (!ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE.equals(
                                getKind().mimeType) || !(s instanceof Spannable)) {
                            return;
                        }
                        
                    }
                });
      

  5.   

    可以删掉多余的
    public void afterTextChanged(Editable s) {
    // TODO Auto-generated method stub
    if (s.length() >LENGTH) {
    s.delete(LENGTH, s.length());
    if (mShowDialog)
    Toast.makeText(...,
    "不可超过" + FD_CONTENT_LENGTH + "字",
    Toast.LENGTH_SHORT).show();
    }
    }
      

  6.   

    还有就是如果这是多个动态加载的edittext中的一个,该如何确定当前修改的的edittext是用于输入联系人名称的,而不是号码的输入框呢