Program: 39355
Project: 39355
Buggy source:
@Override protected void initWidget(){
  mImgOutAccountIcon=(ImageView)findViewById(R.id.out_account_icon);
  mImgInAccountIcon=(ImageView)findViewById(R.id.in_account_icon);
  mTvoOutAccountName=(TextView)findViewById(R.id.out_account_name);
  mTvInAccountName=(TextView)findViewById(R.id.in_account_name);
  mTvOutAccountLeftMoney=(TextView)findViewById(R.id.out_account_money);
  mTvInAccountLeftMoney=(TextView)findViewById(R.id.in_account_money);
  eEtOutMoney=(EditText)findViewById(R.id.out_money);
  eEtInMoney=(EditText)findViewById(R.id.in_money);
  plusView=findViewById(R.id.plus);
  plusView.setVisibility(View.GONE);
  eEtInMoney.setVisibility(View.GONE);
  inView=findViewById(R.id.in_layout);
  outView=findViewById(R.id.out_layout);
  circleProgressBar=(CircleProgressBar)findViewById(R.id.progressBar);
  circleProgressBar.setVisibility(View.INVISIBLE);
  floatingActionButton=(FloatingActionButton)findViewById(R.id.submit);
  floatingActionButton.setOnClickListener(new View.OnClickListener(){
    @Override public void onClick(    View v){
      floatingActionButton.setClickable(false);
      submit();
    }
  }
);
  eEtOutMoney.setText("String_Node_Str");
  eEtInMoney.setText("String_Node_Str");
  eEtOutMoney.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);
  eEtInMoney.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);
  AccountDetailDO accountDetailDO=accountManager.getAccountByID(outAccountID);
  mImgOutAccountIcon.setImageResource(IconTypeUtil.getAccountIcon(accountDetailDO.getAccountIcon()));
  if (!TextUtils.isEmpty(accountDetailDO.getAccountColor())) {
    mImgOutAccountIcon.setColorFilter(Integer.parseInt(accountDetailDO.getAccountColor()));
  }
  mTvoOutAccountName.setText(accountDetailDO.getAccountName());
  String outMoney=MoneyUtil.getFormatMoneyStr(this,accountDetailDO.getAccountMoney());
  mTvOutAccountLeftMoney.setText(TextUtils.isEmpty(outMoney) ? "String_Node_Str" : outMoney);
  mImgInAccountIcon.setImageResource(0);
  mTvInAccountName.setText("String_Node_Str");
  mTvInAccountLeftMoney.setText("String_Node_Str");
  outView.setOnClickListener(new View.OnClickListener(){
    @Override public void onClick(    View v){
      KeyBoardUtils.closeKeybord(eEtOutMoney,AccountsTransferActivity.this);
      KeyBoardUtils.closeKeybord(eEtInMoney,AccountsTransferActivity.this);
      selectItem=0;
      Intent intent=new Intent(AccountsTransferActivity.this,SelectAccountActivity.class);
      if (outAccountID > 0)       intent.putExtra(IntentConstant.ACCOUNT_ID,outAccountID);
      startActivityForResult(intent,0);
      overridePendingTransition(R.anim.up_in,0);
    }
  }
);
  inView.setOnClickListener(new View.OnClickListener(){
    @Override public void onClick(    View v){
      KeyBoardUtils.closeKeybord(eEtOutMoney,AccountsTransferActivity.this);
      KeyBoardUtils.closeKeybord(eEtInMoney,AccountsTransferActivity.this);
      selectItem=1;
      Intent intent=new Intent(AccountsTransferActivity.this,SelectAccountActivity.class);
      if (inAccountID > 0)       intent.putExtra(IntentConstant.ACCOUNT_ID,inAccountID);
      startActivityForResult(intent,0);
      overridePendingTransition(R.anim.up_in,0);
    }
  }
);
  eEtOutMoney.addTextChangedListener(new TextWatcher(){
    @Override public void beforeTextChanged(    CharSequence s,    int start,    int count,    int after){
    }
    @Override public void onTextChanged(    CharSequence s,    int start,    int before,    int count){
      String tmp=s.toString();
      if (tmp.contains("String_Node_Str")) {
        String[] strs=tmp.split("String_Node_Str");
        if (strs.length > 1 && strs[1].length() > 2) {
          eEtOutMoney.setText(tmp.substring(0,tmp.length() - 1));
          eEtOutMoney.setSelection(tmp.length() - 1);
        }
      }
      if (!TextUtils.isEmpty(tmp)) {
        double money=0.00;
        try {
          Double.parseDouble(tmp);
        }
 catch (        Exception e) {
        }
        if (money > Double.parseDouble(mTvOutAccountLeftMoney.getText().toString())) {
          KeyBoardUtils.closeKeybord(eEtOutMoney,AccountsTransferActivity.this);
          SnackBarUtil.showSnackInfo(floatingActionButton,AccountsTransferActivity.this,getResources().getString(R.string.not_have_enough_money));
          eEtOutMoney.setText(mTvOutAccountLeftMoney.getText());
        }
      }
    }
    @Override public void afterTextChanged(    Editable s){
      if (!eEtOutMoney.isFocused())       return;
      eEtInMoney.setText(eEtOutMoney.getText());
    }
  }
);
  eEtInMoney.addTextChangedListener(new TextWatcher(){
    @Override public void beforeTextChanged(    CharSequence s,    int start,    int count,    int after){
    }
    @Override public void onTextChanged(    CharSequence s,    int start,    int before,    int count){
      String tmp=s.toString();
      if (tmp.contains("String_Node_Str")) {
        String[] strs=tmp.split("String_Node_Str");
        if (strs.length > 1 && strs[1].length() > 2) {
          eEtInMoney.setText(tmp.substring(0,tmp.length() - 1));
          eEtInMoney.setSelection(tmp.length() - 1);
        }
      }
      if (!TextUtils.isEmpty(tmp)) {
        double money=Double.parseDouble(tmp);
        if (money > Double.parseDouble(mTvOutAccountLeftMoney.getText().toString())) {
          KeyBoardUtils.closeKeybord(eEtInMoney,AccountsTransferActivity.this);
          SnackBarUtil.showSnackInfo(floatingActionButton,AccountsTransferActivity.this,getResources().getString(R.string.not_have_enough_money));
          eEtInMoney.setText(mTvOutAccountLeftMoney.getText());
        }
      }
    }
    @Override public void afterTextChanged(    Editable s){
      if (eEtOutMoney.isFocused())       return;
      eEtOutMoney.setText(eEtInMoney.getText());
    }
  }
);
}

Fixed version (ground truth):
@Override protected void initWidget(){
  mImgOutAccountIcon=(ImageView)findViewById(R.id.out_account_icon);
  mImgInAccountIcon=(ImageView)findViewById(R.id.in_account_icon);
  mTvoOutAccountName=(TextView)findViewById(R.id.out_account_name);
  mTvInAccountName=(TextView)findViewById(R.id.in_account_name);
  mTvOutAccountLeftMoney=(TextView)findViewById(R.id.out_account_money);
  mTvInAccountLeftMoney=(TextView)findViewById(R.id.in_account_money);
  eEtOutMoney=(EditText)findViewById(R.id.out_money);
  eEtInMoney=(EditText)findViewById(R.id.in_money);
  plusView=findViewById(R.id.plus);
  plusView.setVisibility(View.GONE);
  eEtInMoney.setVisibility(View.GONE);
  inView=findViewById(R.id.in_layout);
  outView=findViewById(R.id.out_layout);
  circleProgressBar=(CircleProgressBar)findViewById(R.id.progressBar);
  circleProgressBar.setVisibility(View.INVISIBLE);
  floatingActionButton=(FloatingActionButton)findViewById(R.id.submit);
  floatingActionButton.setOnClickListener(new View.OnClickListener(){
    @Override public void onClick(    View v){
      floatingActionButton.setClickable(false);
      submit();
    }
  }
);
  eEtOutMoney.setText("String_Node_Str");
  eEtInMoney.setText("String_Node_Str");
  eEtOutMoney.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);
  eEtInMoney.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);
  AccountDetailDO accountDetailDO=accountManager.getAccountByID(outAccountID);
  mImgOutAccountIcon.setImageResource(IconTypeUtil.getAccountIcon(accountDetailDO.getAccountIcon()));
  if (!TextUtils.isEmpty(accountDetailDO.getAccountColor())) {
    mImgOutAccountIcon.setColorFilter(Integer.parseInt(accountDetailDO.getAccountColor()));
  }
  mTvoOutAccountName.setText(accountDetailDO.getAccountName());
  String outMoney=MoneyUtil.getFormatMoneyStr(this,accountDetailDO.getAccountMoney());
  mTvOutAccountLeftMoney.setText(TextUtils.isEmpty(outMoney) ? "String_Node_Str" : outMoney);
  mImgInAccountIcon.setImageResource(0);
  mTvInAccountName.setText("String_Node_Str");
  mTvInAccountLeftMoney.setText("String_Node_Str");
  outView.setOnClickListener(new View.OnClickListener(){
    @Override public void onClick(    View v){
      KeyBoardUtils.closeKeybord(eEtOutMoney,AccountsTransferActivity.this);
      KeyBoardUtils.closeKeybord(eEtInMoney,AccountsTransferActivity.this);
      selectItem=0;
      Intent intent=new Intent(AccountsTransferActivity.this,SelectAccountActivity.class);
      if (outAccountID > 0)       intent.putExtra(IntentConstant.ACCOUNT_ID,outAccountID);
      startActivityForResult(intent,0);
      overridePendingTransition(R.anim.up_in,0);
    }
  }
);
  inView.setOnClickListener(new View.OnClickListener(){
    @Override public void onClick(    View v){
      KeyBoardUtils.closeKeybord(eEtOutMoney,AccountsTransferActivity.this);
      KeyBoardUtils.closeKeybord(eEtInMoney,AccountsTransferActivity.this);
      selectItem=1;
      Intent intent=new Intent(AccountsTransferActivity.this,SelectAccountActivity.class);
      if (inAccountID > 0)       intent.putExtra(IntentConstant.ACCOUNT_ID,inAccountID);
      startActivityForResult(intent,0);
      overridePendingTransition(R.anim.up_in,0);
    }
  }
);
  eEtOutMoney.addTextChangedListener(new TextWatcher(){
    @Override public void beforeTextChanged(    CharSequence s,    int start,    int count,    int after){
    }
    @Override public void onTextChanged(    CharSequence s,    int start,    int before,    int count){
      String tmp=s.toString();
      if (tmp.contains("String_Node_Str")) {
        String[] strs=tmp.split("String_Node_Str");
        if (strs.length > 1 && strs[1].length() > 2) {
          eEtOutMoney.setText(tmp.substring(0,tmp.length() - 1));
          eEtOutMoney.setSelection(tmp.length() - 1);
        }
      }
      if (!TextUtils.isEmpty(tmp)) {
        double money=0.00;
        try {
          money=Double.parseDouble(tmp);
        }
 catch (        Exception e) {
        }
        if (money > Double.parseDouble(mTvOutAccountLeftMoney.getText().toString())) {
          KeyBoardUtils.closeKeybord(eEtOutMoney,AccountsTransferActivity.this);
          SnackBarUtil.showSnackInfo(floatingActionButton,AccountsTransferActivity.this,getResources().getString(R.string.not_have_enough_money));
          eEtOutMoney.setText(mTvOutAccountLeftMoney.getText());
        }
      }
    }
    @Override public void afterTextChanged(    Editable s){
      if (!eEtOutMoney.isFocused())       return;
      eEtInMoney.setText(eEtOutMoney.getText());
    }
  }
);
}