精华内容
下载资源
问答
  • 1 /** 2 * 设置EditText是否编辑 3 * @author com.tiantian 4 * @param editText 要设置的EditText 5 * @param value 编辑:true 不编辑:false 6 */ 7 private voi...
    复制代码
     1 /**
     2      * 设置EditText是否可编辑
     3      * @author com.tiantian
     4      * @param editText 要设置的EditText
     5      * @param value 可编辑:true 不可编辑:false
     6      */
     7     private void setEditTextEditable(EditText editText, boolean value){
     8         if(value){
     9             editText.setFocusableInTouchMode(true);
    10             editText.requestFocus();
    11         }else{
    12             editText.setFocusableInTouchMode(false);
    13             editText.clearFocus();
    14         }
    15     }
    复制代码
    本文转自天天_byconan博客园博客,原文链接:http://www.cnblogs.com/tiantianbyconan/archive/2012/06/15/2550317.html,如需转载请自行联系原作者
    展开全文
  • 【EditText】Android设置EditText编辑

    千次阅读 2013-06-30 17:37:58
    Android设置EditText写,有两种方法。 一:在layout文件中可以通过设置EditText的android:editable属性来设置EditText为不编辑。 android:editable="false" 二:用java代码实现就有点复杂...

    Android设置EditText不可写,有两种方法。

    一:在layout文件中可以通过设置EditText的android:editable属性来设置EditText为不可编辑。

    android:editable="false"


    二:用java代码实现就有点复杂了。

    1、首先设置EditText显示的文本
    2、调用setFocusable()方法,将参数设为false

    EditText editText = (EditText) findViewById(R.id.editText1);
    		editText.setFilters(new InputFilter[] { new InputFilter() {
    			@Override
    			public CharSequence filter(CharSequence source, int start, int end,
    					Spanned dest, int dstart, int dend) {
    				return source.length() < 1 ? dest.subSequence(dstart, dend)
    						: "";
    			}
    		} });
    如下图,EditText变为不可写,但最好有提示,这样用户体验会好一些,因为我们并没有隐藏软键盘


    展开全文
  • 设置EditText可输入和不输入状态

    千次阅读 2019-08-13 18:35:23
    //设置EditText可输入和不输入状态 private void editTextable(EditText editText, boolean editable) { if (!editable) { // disable editing password editText.setFocusable(false); editText....

    //设置EditText可输入和不可输入状态
    private void editTextable(EditText editText, boolean editable) {
    if (!editable) { // disable editing password
    editText.setFocusable(false);
    editText.setFocusableInTouchMode(false); // user touches widget on phone with touch screen
    editText.setClickable(false); // user navigates with wheel and selects widget
    } else { // enable editing of password
    editText.setFocusable(true);
    editText.setFocusableInTouchMode(true);
    editText.setClickable(true);
    }
    }

    展开全文
  • Android 中的EditText最大输入字符数可以通过xml文件中为EditText设置maxLength属性或者在...例如要设置EditText只能输入10个字符 xml中: view plain <EditTextandroid:layout_width="fill_paren...

    Android 中的EditText最大可输入字符数可以通过xml文件中为EditText设置maxLength属性或者在代码中为EditText设置LengthFilter来设置。

    例如要设置EditText只能输入10个字符

    xml中:

     

    1. <EditText  android:layout_width = "fill_parent"  
    2.     android:layout_height = "wrap_content"  
    3.     android:id = "@+id/mEdit"  
    4.     android:maxLength = "10"/>  
    1. <EditText  android:layout_width = "fill_parent"  
    2.     android:layout_height = "wrap_content"  
    3.     android:id = "@+id/mEdit"  
    4.     android:maxLength = "10"/>  

    代码中:

    1. EditText mEdit = (EditText)findViewById(R.id.mEdit);  
    2. InputFilter[] filters = {new LengthFilter(10)};  
    3. mEdit.setFilters(filters);  
    1. EditText mEdit = (EditText)findViewById(R.id.mEdit);  
    2. InputFilter[] filters = {new LengthFilter(10)};  
    3. mEdit.setFilters(filters);  


    以上任意一种方法都可以满足需求,但这种方法只能为EditText设置统一的最大可输入字符,如果碰到根据实际情况限制不同的可输入字符数时,这种方法就不能用了。

    比如SIM卡上的电话本姓名字段长度,纯英文下允许输入17个字符,而中文则只可以输入6个字符。此时可以重写InputFilter类来实现。

    即:

    1. EditText mEdit = (EditText)findViewById(R.id.mEdit);          
    2. InputFilter[] filters = {new AdnNameLengthFilter()};  
    3. mEdit.setFilters(filters);  
    4. public static class AdnNameLengthFilter implements InputFilter  
    5.     {  
    6.         private int nMax;  
    7.   
    8.         public  CharSequence filter (CharSequence source, int start, int end, Spanned dest, int dstart, int dend)  
    9.         {  
    10.             Log.w("Android_12""source("+start+","+end+")="+source+",dest("+dstart+","+dend+")="+dest);  
    11.   
    12.             if(isChinese(dest.toString())|| isChinese(source.toString()))  
    13.             {  
    14.                 nMax = LENGTH_ZNAME;  
    15.             }else  
    16.             {  
    17.                 nMax =LENGTH_ENAME;  
    18.             }  
    19.               
    20.                 int keep = nMax - (dest.length() - (dend - dstart));  
    21.   
    22.                 if (keep <= 0) {  
    23.                     return "";  
    24.                 } else if (keep >= end - start) {  
    25.                     return null// keep original  
    26.                 } else {  
    27.                     return source.subSequence(start, start + keep);  
    28.                 }  
    29.           
    30.         }  
    31.     }  
    1. EditText mEdit = (EditText)findViewById(R.id.mEdit);          
    2. InputFilter[] filters = {new AdnNameLengthFilter()};  
    3. mEdit.setFilters(filters);  
    4. public static class AdnNameLengthFilter implements InputFilter  
    5.     {  
    6.         private int nMax;  
    7.   
    8.         public  CharSequence filter (CharSequence source, int start, int end, Spanned dest, int dstart, int dend)  
    9.         {  
    10.             Log.w("Android_12""source("+start+","+end+")="+source+",dest("+dstart+","+dend+")="+dest);  
    11.   
    12.             if(isChinese(dest.toString())|| isChinese(source.toString()))  
    13.             {  
    14.                 nMax = LENGTH_ZNAME;  
    15.             }else  
    16.             {  
    17.                 nMax =LENGTH_ENAME;  
    18.             }  
    19.               
    20.                 int keep = nMax - (dest.length() - (dend - dstart));  
    21.   
    22.                 if (keep <= 0) {  
    23.                     return "";  
    24.                 } else if (keep >= end - start) {  
    25.                     return null// keep original  
    26.                 } else {  
    27.                     return source.subSequence(start, start + keep);  
    28.                 }  
    29.           
    30.         }  
    31.     }  

     

    其中的isChinese函数是判断是否字符串中是否包含中文字符,具体实现方法就不再赘述了。

    LENGTH_ZNAME : 是中文模式下允许输入的最大字符数。

    LENGTH_ENAME:是纯英文模式下允许输入的最大字符数。

    android怎样判断EditText输入的值是数字还是汉字 ,并限定输入字数
    2011-11-25 10:37

    判断汉字的方法private boolean isChinese(char c) {
            Character.UnicodeBlock ub = Character.UnicodeBlock.of(c);
            if (ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS
                 || ub == Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS
                || ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A
                || ub == Character.UnicodeBlock.GENERAL_PUNCTUATION
                || ub == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION
                || ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS) {
                return true;
            }
            return false;
        }

    数字就根据unicode的范围判断吧!

     

    方法一:利用TextWatcher


    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);   
                   }   
               }   
      
      
           }); 

     private TextWatcher mTextWatcher = new TextWatcher(){
      Toast mToast = null;
      public void beforeTextChanged(CharSequence s, int start, 
        int count,int after) {
      }

      public void onTextChanged(CharSequence s, int start, 
        int before,int count) {
      }
      
      public void afterTextChanged(Editable s) {
       int nSelStart = 0;
       int nSelEnd = 0;
       boolean nOverMaxLength = false;
       
       nSelStart = mEditText.getSelectionStart();
       nSelEnd   = mEditText.getSelectionEnd();
       
       nOverMaxLength = (s.length() > Constants.MAX_TEXT_INPUT_LENGTH) ? true : false;
       if(nOverMaxLength){
        if(null == mToast){
         mToast = Toast.makeText(mContext, 
           R.string.IDS_MSG_TEXT_OVER_MAXLENGTH, 
           Toast.LENGTH_SHORT);
        }
        mToast.show();
        
        s.delete(nSelStart - 1, nSelEnd);

        mEditText.setTextKeepState(s);//请读者注意这一行,保持光标原先的位置,而 mEditText.setText(s)会让光标跑到最前面,

                                                         //就算是再加mEditText.setSelection(nSelStart) 也不起作用
        }
      }
     };

    方法二:利用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"  
    /> 

     

    =========================================================

    方法二:
             利用EditText可以设置filter的特性,自定义一个LengthFilter,当输入字数超过限制时 ,做出自定义的提示
              // 输入框限制输入字数
            InputFilter[] filters = new InputFilter[1];
            filters[0] = new InputFilter.LengthFilter(Constant.TEXT_MAX) {
                @Override
                public CharSequence filter(CharSequence source, int start, int end,
                        Spanned dest, int dstart, int dend) {
                    if (source.length() > 0 && dest.length() == Constant.TEXT_MAX) {
                        if ((System.currentTimeMillis() - toastTime) > interval) {
                            toastTime = System.currentTimeMillis();
                            Toast
                                    .makeText(KaguHomeActivity.this,
                                            R.string.edit_content_limit,
                                            Toast.LENGTH_SHORT).show();
                        }
                    }
                    if (dest.toString().equals(
                            getResources().getString(R.string.input_default_txt))) {
                        Bundle data = new Bundle();
                        data.putCharSequence("source", source);
                        Message message = textHandler.obtainMessage();
                        message.setData(data);
                        message.sendToTarget();
                    }

                    return super.filter(source, start, end, dest, dstart, dend);
                }
            };
            editText.setFilters(filters);
    private Handler textHandler = new Handler() {
            @Override
            public void handleMessage(Message msg) {

                Bundle data = msg.getData();
                CharSequence source = data.getCharSequence("source");
                editText.setTextColor(Color.BLACK);
                editText.setText(source);
                editText.setSelection(source.length());
            }
        };
    =============================================================

     

    转载于:https://www.cnblogs.com/merryjd/archive/2013/01/11/2856489.html

    展开全文
  • 设置EditText编辑

    千次阅读 2016-12-05 19:03:17
    我们的应用经常会根据场景来决定EditText是否可以编辑下面介绍几种禁止... 设置编辑 edit.setFocusable(false); edit.setFocusableInTouchMode(false); 设置可以编辑 edit.setFocusableInTouchMode(true);
  • android设置EditText为不编辑状态

    万次阅读 多人点赞 2018-05-10 18:50:41
    最近做一个项目,需要动态设置EditText为不编辑状态,根据某些条件判断,设置EditText为可编辑状态: eidtext.setFocusableInTouchMode(false);//不编辑 eidtext.setKeyListener(null);//不粘贴,长按不会弹...
  • android 设置edittext 点击不编辑

    千次阅读 2018-05-30 14:44:25
    编辑但点击,隐藏光标editText.setCursorVisible(false);editText.setFocusable(false);editText.setFocusableInTouchMode(false); 可以编辑可以点击,显示光标:editText.setFocusable(true); editText....
  • 设置EditText可编辑和不编辑

    千次阅读 2018-08-01 09:33:36
    如果没有显示内容,则将EditText设置为可输入状态。 1.首先想到的是在XML文件中设置android:focusable=”false”,然后在代码中设置此控件属性:editText.setFocusable(true); 经过测试验证:如果有多个EditText,...
  • //设置EditText可输入和不输入状态 private void editTextable(EditText editText, boolean editable) { if (!editable) { // disable editing password editText.setFocusable(false); editText.setFocus
  • Android 设置EditText编辑

    千次阅读 2011-01-13 16:15:00
    在layout文件中可以通过设置EditText的android:editable属性来设置EditText为不编辑 在代码中可以以下方法设置为不编辑: 1、首先设置EditText显示的文本 2、调用setFocusable()方法,将...
  • 设置EditText 长度

    2012-05-07 11:05:30
    mEditText.setFilters(new InputFilter[]{ new InputFilter.LengthFilter(100) });//设置EditText可输入的长度为100个字符
  • 设置EditText可点击但是不编辑

    千次阅读 2018-09-04 10:39:27
    背景: ... 但是采用了android:enabled="...,则不编辑,也不点击。 解决方案:  android:cursorVisible="false" android:focusable="false" android:focusableInTouchMo...
  • 1,设置EditText属性1),设置EditText为不输入且不弹出软键盘android:cursorVisible="false"//不显示光标 android:editable="false"//不编辑 android:inputType="none"//不弹出软键盘 android:textIsSelectable...
  • 网上说的很复杂,那些称之为解决方案的我都试过,都不行 从头到尾只需要设置一个属性即可 android:enabled="false" 代码中如想转换编辑状态,只需要设置et . setEnabled(true)即可
  • android:maxLength=”10“意思是最大输入长度10 代码中editText.setFilters(new InputFilter[]{ new InputFilter.LengthFilter(10)});
  • mEditText.setEnabled(false);mEditText.setFocusable(false);mEditText.setKeyListener(null);//重点不设置addTextChangedListener,或设置为null 转载于:https://www.cnblogs.com/yongfengnice/p/7120348.html...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 643
精华内容 257
关键字:

可设置edittext