如何设置一个textwatcher动态超过Android中的Edittext

时间:2016-05-30 08:02:18

标签: android android-edittext android-textwatcher

我想为动态设置一个textwatcher而不是Edittext 。如果我正在创建动态Edittext我想为所有Dynamic Edittext使用一个textWatcher。如果有人知道告诉我

2 个答案:

答案 0 :(得分:0)

您可以创建自定义TextWatcher类,如下所示。

private class CustomTextWatcher implements TextWatcher{

        private EditText et;

        private CustomTextWatcher (EditText et){

            this.et = et;

        }

        @Override
        public void afterTextChanged(Editable s) {

        }

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

        }

        @Override
        public void onTextChanged(CharSequence s, int start, int before,
                int count) {


        }

    }

如需设置textwatcher,您可以按照以下步骤进行操作

yourdynamicedittext.addTextChangedListener(new CustomTextWatcher(yourdynamicedittext));

在CustomTextWatcher类中,您可以处理分配TextChangedListener的每个edittext的相对大小写。要在不同的edittext之间进行标识,您可以在CustomTextWatcher类中设置标记并检索它。

yourdynamicedittext.setTag(1,2,... n);

答案 1 :(得分:0)

这不是我的答案。这是我的代码我做了什么

Activity.java

btnClick.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                for(int i=0;i<=3;i++)
            {
                final EditText editText=new EditText(TextWatchSamp.this);
                linear.addView(editText);
                editText.addTextChangedListener(new CustomTextWatcher(editText));


                }


                }


        });

CustomTextWatcher.java

public class CustomTextWatcher implements TextWatcher {
    EditText et=null;
     CustomTextWatcher (EditText et){
         this.et=et;

     }

    @Override
    public void beforeTextChanged(CharSequence s, int start, int count,
            int after) {
        // TODO Auto-generated method stub

    }

    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {
        // TODO Auto-generated method stub

    }

    @Override
    public void afterTextChanged(Editable s) {
        // TODO Auto-generated method stub
        et.setText(s);
    }

}

但错误来自et.setText(s); 为什么呢?