15

文字が EditText に入力されて 0 から 1 文字の長さになり、何らかのアクションを実行するかどうかを検出するにはどうすればよいですか?

4

3 に答える 3

25

あなたはかなり抽象的な質問をしているので、同様に一般的な答えを試してみましょう:

あなたの中で、あなたonCreate()を宣言してキャストしますEditText

EditText editText = (EditText) findViewById(R.id.editText);
editText.addTextChangedListener(filterTextWatcher);

そして、 ので、次のようonCreate()にセットアップします。filterTextWatcher

private TextWatcher filterTextWatcher = new TextWatcher() {

    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {
        // DO THE CALCULATIONS HERE AND SHOW THE RESULT AS PER YOUR CALCULATIONS

        int radius = 0;
        radius = Integer.valueof(s.toString);
        double area = Math.PI * radius * radius;
    }

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

    }

    @Override
    public void afterTextChanged(Editable s) {

    }
};

編集:

可能な計算でコードを更新しました。(テストされていないコード: テストせずに入力しただけです。必要に応じて変更してください)

TextWatcher の詳細については、こちらをご覧ください

そして、ここにあなたが始めるためのいくつかの例があります:

  1. http://www.android-ever.com/2012/06/android-edittext-textwatcher-example.html
  2. http://www.cybernetikz.com/blog/android-textwatcher-example/
  3. http://www.allappsdevelopers.com/TopicDetail.aspx?TopicID=22b00052-dad0-4e09-a07e-b74f115ab247
  4. http://myandroidsolutions.blogspot.in/2012/06/android-edittext-change-listener.html
于 2013-01-31T12:13:57.627 に答える
7

EditTextで TextWatcherを使用して、ユーザーの入力データでやりたいことをすぐに処理できます。

これは、ユーザーがデータを入力したときにすぐにフォーマットする例です

final EditText EditTxtFinancialCode = (EditText) findViewById(R.id.edtNewCpFinancialCode);


    EditTxtFinancialCode.addTextChangedListener(new TextWatcher() {

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

            String a = "";
            boolean flag = true;
            String eachBlock[] = EditTxtFinancialCode.getText().toString().split("-");
            for (int i = 0; i < eachBlock.length; i++) {
                if (eachBlock[i].length() > 4) {
                    flag = false;
                }
            }
            if (flag) {

                EditTxtFinancialCode.setOnKeyListener(new OnKeyListener() {

                    @Override
                    public boolean onKey(View v, int keyCode, KeyEvent event) {

                        if (keyCode == KeyEvent.KEYCODE_DEL)
                            KeyDel = 1;
                        return false;
                    }

                });

                if (KeyDel == 0) {

                    if (((EditTxtFinancialCode.getText().length() + 1) % 5) == 0) {

                        if (EditTxtFinancialCode.getText().toString().split("-").length <= 2) {
                            EditTxtFinancialCode.setText(EditTxtFinancialCode.getText() + "-");
                            EditTxtFinancialCode.setSelection(EditTxtFinancialCode.getText().length());
                        }

                    }
                    a = EditTxtFinancialCode.getText().toString();
                } else {
                    a = EditTxtFinancialCode.getText().toString();
                    KeyDel = 0;
                }

            } else {
                EditTxtFinancialCode.setText(a);

            }

        }

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

        }
        @Override
        public void afterTextChanged(Editable arg0) {
            // TODO Auto-generated method stub

        }
    });
于 2013-01-31T12:09:00.710 に答える
6

http://developer.android.com/reference/android/widget/TextView.OnEditorActionListener.html

リスナーを作ります。

   myTextBox.addTextChangedListener(new TextWatcher() {

   public void afterTextChanged(Editable s) {
   }

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

   public void onTextChanged(CharSequence s, int start, 
     int before, int count) {
   TextView myOutputBox = (TextView) findViewById(R.id.myOutputBox);
   myOutputBox.setText(s);
   }
  });

http://www.mysamplecode.com/2012/06/android-edittext-text-change-listener.htmlを参照してください

于 2013-01-31T12:14:37.640 に答える