zoukankan      html  css  js  c++  java
  • Android3种方式限制EditView输入字数

    editText.addTextChangedListener(new TextWatcher() {   
               private CharSequence temp;   
               private boolean isEdit = true;   
               private int selectionStart ;   
               private int selectionEnd ;   
               @Override  
               public void beforeTextChanged(CharSequence s, int arg1, int arg2,   
                       int arg3) {   
                   temp = s;   
               }   
                  
               @Override  
               public void onTextChanged(CharSequence s, int arg1, int arg2,   
                       int arg3) {   
               }   
                  
               @Override  
               public void afterTextChanged(Editable s) {   
                    selectionStart = editText.getSelectionStart();   
                   selectionEnd = editText.getSelectionEnd();   
                   Log.i("gongbiao1",""+selectionStart);   
                   if (temp.length() > Constant.TEXT_MAX) {   
                       Toast.makeText(KaguHomeActivity.this,   
                               R.string.edit_content_limit, Toast.LENGTH_SHORT)   
                               .show();   
                       s.delete(selectionStart-1, selectionEnd);   
                       int tempSelection = selectionStart;   
                       editText.setText(s);   
                       editText.setSelection(tempSelection);   
                   }   
               }   
      
      
           }); 

     editText.addTextChangedListener(new TextWatcher() {
                private CharSequence temp;
                private boolean isEdit = true;
                private int selectionStart ;
                private int selectionEnd ;
                @Override
                public void beforeTextChanged(CharSequence s, int arg1, int arg2,
                        int arg3) {
                    temp = s;
                }
                
                @Override
                public void onTextChanged(CharSequence s, int arg1, int arg2,
                        int arg3) {
                }
                
                @Override
                public void afterTextChanged(Editable s) {
                     selectionStart = editText.getSelectionStart();
                    selectionEnd = editText.getSelectionEnd();
                    Log.i("gongbiao1",""+selectionStart);
                    if (temp.length() > Constant.TEXT_MAX) {
                        Toast.makeText(KaguHomeActivity.this,
                                R.string.edit_content_limit, Toast.LENGTH_SHORT)
                                .show();
                        s.delete(selectionStart-1, selectionEnd);
                        int tempSelection = selectionStart;
                        editText.setText(s);
                        editText.setSelection(tempSelection);
                    }
                }


            });
     

    方法二:利用InputFilter

        


    editText.setFilters(new InputFilter[]{new InputFilter.LengthFilter(100)});  //其中100最大输入字数 

    editText.setFilters(new InputFilter[]{new InputFilter.LengthFilter(100)});  //其中100最大输入字数

    方法三:在XML中设定

    Xml代码 
    <EditText  
        .   
        .   
        .   
        Android:maxLength="100"  
    /> 

  • 相关阅读:
    总结类初始化时的代码执行顺序
    Calcite数据源适配器对时间字段的操作问题
    如何自定义一个Calcite对Tablesaw查询的适配器
    Redis集群 Redis Cluster
    培养代码逻辑
    在线查看office文件的两种方法
    WPF Prism框架合集(9.Dialog)
    WPF Prism框架合集(8.Navigation)
    WPF Prism框架合集(7.Mvvm)
    springboot @OneToOne 解决JPA双向死循环/返回json数据死循环
  • 原文地址:https://www.cnblogs.com/merryjd/p/2856653.html
Copyright © 2011-2022 走看看