1

1 つのテキスト フィールドを編集するときに、別のテキスト フィールドを変更したい。

  editTextCount.addTextChangedListener( new TextWatcher( ) {

    @Override
    public void afterTextChanged( Editable arg0 ) {

      if ( arg0.length( ) == 0 ) {
        return;
      }

      editTextAmount.setText( value
          * Integer.parseInt( arg0.toString( ) )+""  );

    }

    @Override
    public void beforeTextChanged( CharSequence arg0, int arg1, int arg2,
        int arg3 ) {
      // TODO Auto-generated method stub

    }

    @Override
    public void onTextChanged( CharSequence arg0, int arg1, int arg2,
        int arg3 ) {
      // TODO Auto-generated method stub

    }

  } );

editTextCount を編集すると、editTextAmount が変更されるはずですが、何も起こりません。

編集 - また、これがカスタム ArrayAdapter にあることを忘れていました。これが問題でしょうか?

Edit2 - 私は馬鹿です。getView() メソッド内でEditText editTextAmount宣言する必要があるときに、クラス レベル変数として 宣言し ていました。final EditText editTextAmountみんな助けてくれてありがとう。あなたの答えは、将来のエラーに役立ちます。

4

3 に答える 3

2

onTextChanged()の代わりにコードを実装する必要があると思いますafterTextChanged()ドキュメントから:

このメソッドは、s 内で、start から始まる count 文字が、以前の長さの古いテキストをちょうど置き換えたことを通知するために呼び出されます。


ちなみに、値を渡す前にparseIntの入力を確認する必要があります。無効な番号の場合は例外をスローします

于 2013-06-24T18:27:34.767 に答える