来自复合控件的onTextChanged

时间:2018-09-20 12:11:44

标签: android

我有一个复合控件'EditLine',其中包含带有TextviewsImageviewsEditText的RelativeLayout。我想要一个使用EditLine来使用onTextChanged的{​​{1}}事件的Activity。例如:用户键入“是”后,活动其他位置的按钮就会启用或类似的功能。 这有可能吗?

2 个答案:

答案 0 :(得分:0)

您需要在编辑文本上使用文本监视程序以捕获任何编辑文本事件

editText.addTextChangedListener(new TextWatcher() {
    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {

    }

    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {

    }

    @Override
    public void afterTextChanged(Editable s) {
      if(s.toString().equals("yes")){
      // your code here

        }
    }
});

答案 1 :(得分:0)

您可以在 EditText 中添加 TextWatcher ,并使用 TextWatcher onTextChanged(CharSequence s, int start, int before, int count)方法处理所有文本更改。

示例:

EditText myEditText = findViewById(R.id.my_edit_text);
TextWatcher myTextWatcher = 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) {
        //do validation on input here
        //for example
         if(s.toString().equalsIgnoreCase("yes")){
                //then perform some action. 
                // Make your button enable for example
            }
    };
myEditText.addTextChangedListener(myTextWatcher);