当我编辑一个文本字段时,我希望更改另一个文本字段。

  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时将其声明为类级变量。谢谢各位的帮助。您的回答将帮助我将来解决错误。

最佳答案

我认为您需要在onTextChanged()而不是afterTextChanged()中实现代码。从docs


  调用此方法以通知您在s内计数
  开始时的字符刚刚替换了具有
  之前的长度。




附带说明一下,您应该在传递值之前检查parseInt的输入。如果数字无效,则会引发异常

10-08 12:19