在另一个edittext中打印输入,而输入在一个edittext中完成,无需按下按钮

时间:2016-03-05 06:59:36

标签: java android android-studio

假设我在p1和inp2中有2个EditText对象。如果我在inp1中输入内容,我希望它出现在inp2中,反之亦然。在任何一个中做出的改变也应该改变另一个。我实际上想要两个EditText对象分别在基数10和2中输入数字。当我输入二进制数字时,我希望它的等效十进制数出现在另一个EditText中,反之亦然,而不使用任何按钮或任何东西。有没有相当于EditText按钮的onClick属性的东西?只要EditText文本发生更改,它就可以自动调用函数。 我希望我能说清楚我的问题。 谢谢。

3 个答案:

答案 0 :(得分:0)

您需要在这两个字段上使用TextWatcher。这个question的答案基本上就是你所描述的

答案 1 :(得分:0)

你可以像这样使用TextWatcher

tagNameEditText.addTextChangedListener(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) {
                // set text or result in other EditText here   
                }

                @Override
                public void afterTextChanged(Editable s) {

                              }
            });

在onTextChanged()方法的Listener中,您可以在其他EditText中设置文本

答案 2 :(得分:0)

使用TextWatcher。 这是简短的代码:

private final TextWatcher edit_one_Watcher = new TextWatcher() {
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {

        }

        public void onTextChanged(CharSequence s, int start, int before, int count) {
         // enter your logic here 
//and print in second edittext
        }

        public void afterTextChanged(Editable s) {

        }
    };

private final TextWatcher edit_second_Watcher = new TextWatcher() {
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }

            public void onTextChanged(CharSequence s, int start, int before, int count) {
             // enter your logic here 
    //and print in first edittext 
            }

            public void afterTextChanged(Editable s) {

            }
        };  

注意:使用boolean / flag忽略autotextchange。

.i.e. boolean ignoreFirstTextChange = true;
.i.e. boolean ignoreSecondTextChange = true;