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

addTextChangedListenerEditTextに移動し、関数を使用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 に答える