1

我在 Android 上看到过一个应用程序,只要一个人在文本框中输入任何内容,显示输出的另一个文本框就会自动更改,而无需按下任何按钮或任何东西。我想知道如何为 Android 应用程序做到这一点。

4

3 回答 3

1

您可以通过将addTextChangedListener添加到 EditText 来做到这一点。对用户输入的数据执行所有操作,afterTextChanged因为当用户停止在 Edittext 中输入时调用此方法

EditText edttext = (EditText)findViewById(R.id.edttext);
edttext.addTextChangedListener(textChecker);
    TextWatcher textChecker = new TextWatcher() {

    public void afterTextChanged(Editable s) {
                  //set text to other Views 
     }

    };

请参阅示例了解我们如何使用 TextWatcher

于 2013-01-13T07:29:24.083 回答
0

您可以addTextChangedListener对您的 EditText 并使用onTextChanged函数来更改其他 EditText 中的文本。

于 2013-01-13T07:29:01.763 回答
0

这里 ed 是 EditText ,我想,这段代码完成了你的期望..试试这段代码

ed.addTextChangedListener(new TextWatcher() {

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int end) {
            // TODO Auto-generated method stub
            //tv.setText(s.toString());
        if(s.length()==1){
                String get=s.toString();
             tv.setText(s.toString());
             tv.startAnimation(mytrans);
             mytrans.reset();
            }else if(s.length()==2){
                tv1.setText(s.subSequence(1,2));
                 tv1.startAnimation(myanim);
            }else if(s.length()==3){
                tv2.setText(s.subSequence(2, 3));
                tv2.startAnimation(mytrans);
            }else if(s.length()==4){
                tv3.setText(s.subSequence(3, 4));
                tv3.startAnimation(myalpha);
        }else if(s.length()==5){
            tv4.setText(s.subSequence(4, 5));
            tv4.startAnimation(myanim1);
        }else{
            tv.setText(s.toString());

                    ObjectAnimator animation2 = ObjectAnimator.ofFloat(tv,"translationX",180);
                    animation2.setDuration(2000);
                    animation2.start();
                    ObjectAnimator animation3 = ObjectAnimator.ofFloat(tv,"translationY",100);
                    animation3.setDuration(2000);
                    animation3.start();
                    ObjectAnimator animation4 = ObjectAnimator.ofFloat(tv,"rotation",360);
                    animation4.setDuration(2000);
                    animation4.start();
                    ib.startAnimation(myanim);
                    ib1.startAnimation(myanim1);
                    tv.startAnimation(mytrans); 
        }
            /*if(s.length()==6){
                ib.requestFocus();
            }*/
        }

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

        }

        @Override
        public void afterTextChanged(Editable s) {
            // TODO Auto-generated method stub
            /*ib.startAnimation(myanim);
            ib1.startAnimation(myanim1);
            tv.startAnimation(mytrans); */



        }
    });
于 2013-01-13T09:56:51.383 回答