精华内容
下载资源
问答
  • Android 监听EditText变化

    2016-03-15 15:16:22
    Android 监听EditText变化事件
  • Android监听EditText

    2018-02-20 14:50:57
    代码如下,监听条件为长度都大于9,状态改变 private int allow = 0x1 ; @Override protected void init() { TextWatcher watcher = new TextWatcher() { @Override public void beforeTextChanged...

    是这样一个api

    TextWatcher watcher = new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {
    
        }
    
        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
          
        }
    
        @Override
        public void afterTextChanged(Editable s) {
    
        }
    };
    etUserName.addTextChangedListener(watcher);

    效果如下


    主要是理解参数意思

    onTextChanged(CharSequence s, int start, int before, int count)

    s是这次输入结束后的数组,所以s.length就是最新的长度

    before如果你是进行一个输入 before==0

    如果你是进行一个删除 before==1

    对于批量删除情况 暂时没考虑

    代码如下,监听条件为长度都大于9,状态改变

    private int allow = 0x1;
    
    @Override
    protected void init() {
        TextWatcher watcher = new TextWatcher() {
            @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 (s.length() == 9 && before == 0) {
                    allow = allow << 1;
                    if (allow == 0x1 << 2) {
                        btRegister.setBackgroundColor(Color.parseColor("#12b7f5"));
                        btRegister.setTextColor(Color.parseColor("#FFFFFF"));
                    }
                } else if (s.length() == 8 && before == 1) {
                    allow = allow >> 1;
                    if (allow != 0x1 << 2) {
                        btRegister.setBackgroundColor(Color.parseColor("#e9ebec"));
                        btRegister.setTextColor(Color.parseColor("#c4c4c4"));
                    }
                }
            }
    
            @Override
            public void afterTextChanged(Editable s) {
    
            }
        };
        etUserName.addTextChangedListener(watcher);
        etUserPassword.addTextChangedListener(watcher);
    }
    

    展开全文
  • Android 监听EditText文本输入 EditText监听事和输入事件

    方法一:使用setOnKeyListener(),这种方式只能监听硬键盘事件所以大多数android设备不能用

    editText.setOnKeyListener(new View.OnKeyListener() {              
                @Override  
                public boolean onKey(View v, int keyCode, KeyEvent event) {  
                    Log.i(TAG, editText.getText());  
                    return false;  
                }  
            }); 
    方法二:使用TextWatcher类,可监听软键盘和硬键盘的,只需实现onTextChanged方法即可,另外TextWatcher还提供了beforeTextChanged和afterTextChanged方法,用于更加详细的输入监听处理
    editText.addTextChangedListener(new TextWatcher() {           
                @Override  
                public void onTextChanged(CharSequence s, int start, int before, int count) {  
                	Log.i(TAG, "输入文字中的状态,count是输入字符数"); 
                    Log.i(TAG, editText.getText());  
                }  
                  
                @Override  
                public void beforeTextChanged(CharSequence s, int start, int count,  
                        int after) {   
                	Log.i(TAG, "输入文本之前的状态");  
                }  
                  
                @Override  
                public void afterTextChanged(Editable s) {   
                	Log.i(TAG, "输入文字后的状态");  
                }  
            });
    方法三:实现当输入到最大值时则不允许再输入,另外由EditText并没有提供给我们EditText的禁止输入功能,以下方法也实现了此功能。
      private void setEditable(EditText editText, int maxLength, boolean value) {  
            if (value) {  
                editText.setFilters(new InputFilter[] { new MyEditFilter(maxLength) });  
                editText.setCursorVisible(true);  
                editText.setFocusableInTouchMode(true);  
                editText.requestFocus();  
            } else {  
                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.setCursorVisible(false);  
                editText.setFocusableInTouchMode(false);  
                editText.clearFocus();  
            }  
        } 




    展开全文
  • Android 监听EditText控件文本变化并修改显示内容

    在软件设计中我们会遇到这样的请求,比如用户购物时可以在文本框EditText内只能输入整数,而且大小不能超过对应商品的剩余数额num。前者好办,设置EditText的inputType就可以了,后者就需要监听EditText的文本变化。
    在网上浏览了一圈,看到的监听器都只能监听文本的变化,而不能修改EditText的文本显示,还是自己动手解决吧。

      EditText viewById = (EditText)findViewById(R.id.edit);
      viewById.addTextChangedListener(new TextWatcher() {
                @Override
                public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
    
                }
    
                @Override
                public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
    
                }
    
                @Override
                public void afterTextChanged(Editable editable) {
                    String originText = editable.toString();
                    String myText="konijiwa";
                    CharSequence charSequence = myText.subSequence(0, myText.length());
                    if(i==0) {
                        i++;
                        editable.replace(0, originText.length(), charSequence);
                    }
                }
            });

    通过分析editable.replace(int st, int en, CharSequence text)方法,参数st代表待替换的EditText的文本的初始位置,en代表结束位置,英文过关的同道可以自行查看源代码注释。上述代码中使用(i==0)作为是否执行替换文本操作的判定条件。值得提醒的是,执行editable.replace(0, originText.length(), charSequence)方法之后,会立即再次触发TextWatcher文本监听器中的方法,因为文本在代码中再次修改了。也就是代码如下,

     if(i==0) {
         editable.replace(0, originText.length(), charSequence);
         i++;
               }

    那么i++将永远无法执行,程序会陷入死循环。所以我们应该把触发替换文本操作的标志(i的值)的修改,放在替换操作执行之前完成。

    展开全文
  • 就可以了那么如果你用到第三方输入法,有些时候监听就没有这么好使了:以下场景为:外接输入服务,直接给我丢一串字符,我拿到字符后执行按钮事件代码如下:editText1.addTextChangedListener(newTextWatcher(){@...

    如果你没有接第三方的输入设备,那么点击按钮只需找到你的button然后:button.performClick();

    就可以了

    那么如果你用到第三方输入法,有些时候监听就没有这么好使了:

    以下场景为:

    外接输入服务,直接给我丢一串字符,我拿到字符后执行按钮事件

    代码如下:editText1.addTextChangedListener(new TextWatcher(){

    @Override

    public void afterTextChanged(Editable s) {

    Log.d(TAG, "afterTextChanged");

    }

    @Override

    public void beforeTextChanged(CharSequence s, int start, int count,

    int after) {

    Log.d(TAG, "beforeTextChanged:" + s + "-" + start + "-" + count + "-" + after);

    }

    @Override

    public void onTextChanged(CharSequence s, int start, int before,

    int count) {

    if(s.length()>5) {

    Log.d(TAG, "onTextChanged:" + s + "-" + "-" + start + "-" + before + "-" + count);

    Toast.makeText(context, s + "", Toast.LENGTH_LONG).show();

    //

    EditText editText3 = (EditText) findViewById(R.id.et_3);

    Button button = (Button) findViewById(R.id.bu_1);

    button.performClick();

    }

    }

    });

    需要注意的是,onTextChanged

    方法内必须给一个限定参数,否则会不断的执行,形成死循环,程序就会意外退出。

    我这边写的则是if(s.length()>5)

    展开全文
  • android中提供了对edittext控件的监听方法addTextChangedListene,
  • 监听EditText的变化 使用EditText的addTextChangedListener(TextWatcher watcher)方法对EditText实现监听,TextWatcher是一个接口类,所以必须实现TextWatcher里的抽象方法: 当EditText里面的内容有变化的时候...
  • 由于,安卓系统并没有提供软键盘弹入和弹出的方法。所以,我们需要自己自定义一个监听软件盘的类。大致实现原理就是监听视图树中布局或可视状态发生改变超过一定的数值,来监听软键盘的弹入弹出事件。
  • android 监听EditText 的变化

    千次阅读 2015-06-22 17:52:42
    使用EditText的addTextChangedListener(TextWatcher watcher)方法对EditText实现监听,TextWatcher是一个接口类,所以必须实现TextWatcher里的抽象方法: 当EditText里面的内容有变化的时候,触发...
  • Android 监听EditText的输入状态

    千次阅读 2017-07-21 17:44:43
    监听输入框的状态,输入框有一个一键删除的小×号,默认是不显示的,当输入内容的时候显示 2.密码隐藏功能,点击隐藏,如果密码的时候是隐藏状态。因为这是一个普通常用需求,我就分装成一个工具类。 废话不说,...
  • 主要重难点 Android软盘一般是伴随着EditText来显示和隐藏,那么对软盘的一些按钮的监听也需要借助于EditText。 软键盘的Enter键默认显示的是“完成”文本,在布局XML文件通过设置android:imeOptions来改变默认的...
  • android监听edittext输入事件

    千次阅读 2014-02-09 14:03:18
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/textviewll" android:orientation="vertical" android:layout_width="fill_parent" android:
  • android 监听EditText输入字符长度

    千次阅读 2013-11-22 21:13:19
    项目当中的要求很多,最近遇到了一些要求,在Dialog... 看似很艰难,其实只要你知道有这样一个监听就简单多了。这个监听就是addTextChangedListener(EditText s). public class EditTextActivity extends Activity
  • Android 监听EditText输入文字的字数

    万次阅读 2012-08-02 11:48:03
    功能很简单,直接上代码. public void init(){ chCounterText = (TextView) findViewById(R.id.sdk_status_ch_... statusEdit = (EditText) findViewById(R.id.sdk_status_edit_text); statusEdit.addTextCh
  • //聚焦和失焦的回调 _editText.setOnFocusChangeListener(newView.OnFocusChangeListener() { @Overridepublic void onFocusChange(View v, booleanhasFocus) {if(hasFocus) { Toast.makeText(EditTextActivity.this...
  • 如图最近接手一个项目很多这种未输入按钮不可用的界面,所以把这种功能封装了一下使用:@RequiresApi...public class MainActivity extends AppCompatActivity { private EditText editPhone,editPwd,editVerify; p
  • alert_ed = (EditText) a.findViewById(R.id.alert_ed_queue_num); alert_ed.addTextChangedListener(mTextWatcher); private TextWatcher mTextWatcher = new TextWatcher() { public void afterTextCha...
  • * 添加EditText或者TextView监听 * * @param views 传入单个或者多个EditText或者TextView对象 */ public void addViews(TextView... views) { if (views == null) return; if (mViewSet == null) { ...
  • android 监听EditText复制粘贴等操作

    千次阅读 2013-11-01 16:17:59
    重写EditText的 public boolean onTextContextMenuItem(int id) { return super.onTextContextMenuItem(id); } 方法,根据id判断当前操作: id:16908319 全选 id:16908328 选择 id:16908320 剪贴 id:...
  • mPassword = (EditText) mView.findViewById(R.id.login_edittext_userpassword);mPassword.setOnEditorActionListener(new TextView.OnEditorActionListener() {@Overridepublic boolean onEditorAction(TextView v...
  • 主要介绍了Android编程实现监听EditText变化的方法,涉及Android针对EditText的相关操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下
  • Android开发 监听edittext

    2021-01-07 19:51:53
    EditText的addTextChangedListener方法介绍 https://blog.csdn.net/w1070216393/article/details/83214646
  • 在软键盘中注意在监听edittext中使用android:imeOptions属性的时候,一定要对EditText设置 android:inputType 或者 设置 android:singleline=”true”在activity_main.xml文件中,定义了8个EditText,imeOptions...
  • 主要介绍了Android编程实现实时监听EditText文本输入的方法,结合实例形式分析了EditText控件及事件响应相关操作技巧,需要的朋友可以参考下
  • ;运行效果;布局文件;布局文件;在Activity中为文本框添加监听事件待续;在Activity中为文本框添加监听事件待续;在Activity中为文本框... 机械工业出版社 /questions/8069015/how-to-get-edittext-maxlength-setting-in-c
  • Android监听EditText内容变化 两种方式详解 1、软键盘回车监听事件 et_submit.setOnEditorActionListener(new TextView.OnEditorActionListener() { @Override public boolean onEditorAction(TextView v, int ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 27,962
精华内容 11,184
关键字:

android监听edittext