How to create a sum method where the result appears in the edit text field [closed]

0

I am creating an application and I would like the result of the cost price plus profit percentage operation to appear in the sales price result, since the latter can not be edited at the time of saving the data. I ask them to be as specific as possible because I do not have much experience. Thank you.

importandroid.app.Activity;importandroid.app.AlertDialog;importandroid.content.DialogInterface;importandroid.content.Intent;importandroid.graphics.Bitmap;importandroid.os.Bundle;importandroid.text.Editable;importandroid.text.TextWatcher;importandroid.view.View;importandroid.widget.Button;importandroid.widget.EditText;importandroid.widget.ImageView;importandroid.widget.Toast;importbr.gestaoBd.BancoDeDados.ProdutoDao;importbr.gestaoBd.Beans.Produto;publicclassCadProdutosextendsActivity{privateImageViewimgView=null;staticfinalintSALVAR=0,EXCLUIR=1,LIMPAR=2;EditTextedId,edDescricao,edPrecoDeCusto,edPercDeLucro,edPrecoDeVenda;ProdutoDaoprodDao;Produtoproduto;ImageViewimgFoto;@OverridepublicvoidonCreate(Bundleicicle){super.onCreate(icicle);setContentView(R.layout.cad_produtos);edId=(EditText)findViewById(R.id.cadEdId);edDescricao=(EditText)findViewById(R.id.cadEdDescricao);edPrecoDeCusto=(EditText)findViewById(R.id.cadEdPrecoDeCusto);edPrecoDeCusto.addTextChangedListener(newMonetaryMask(edPrecoDeCusto));edPercDeLucro=(EditText)findViewById(R.id.cadEdPercDeLucro);edPrecoDeVenda=(EditText)findViewById(R.id.cadEdPrecoDeVenda);edPrecoDeVenda.addTextChangedListener(newMonetaryMask(edPrecoDeVenda));imgView=(ImageView)findViewById(R.id.imgFoto);ProdutoprodutoRecebido=(Produto)getIntent().getSerializableExtra("Produto");
    if (produtoRecebido != null) {
        montaTela(produtoRecebido);
    } else {
        montaTela(new Produto());
    }

    Button btn1Salvar = (Button) findViewById(R.id.btSalvar);
    btn1Salvar.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            Produto pro = new Produto();
            pro.setId(Integer.valueOf(edId.getText().toString()));
            pro.setDescricao(edDescricao.getText().toString());
            pro.setPrecoDeCusto(MonetaryMask.stringMonetarioToDouble(edPrecoDeCusto.getText().toString()));
            pro.setPercDeLucro(Double.valueOf(edPercDeLucro.getText().toString()));
            pro.setPrecoDeVenda(MonetaryMask.stringMonetarioToDouble(edPrecoDeVenda.getText().toString()));

            if (pro.getId() > 0) {
                getProDao().alterar(pro);
            } else {
                getProDao().inserirProduto(pro);
            }
            ToastManager.show(getBaseContext(), "Salvo com Sucesso",
                    ToastManager.INFORMATION);

        }
    });

    Button btnLimpar = (Button) findViewById(R.id.btLimpar);

    btnLimpar.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            montaTela(new Produto());
        }
    });

    Button bt2Excluir = (Button) findViewById(R.id.bt2Excluir);
    bt2Excluir.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            final Produto pro = new Produto();
            pro.setId(Integer.valueOf(edId.getText().toString()));
            pro.setDescricao(edDescricao.getText().toString());
            pro.setPrecoDeCusto(Double.valueOf(edPrecoDeCusto.getText().toString()));
            pro.setPercDeLucro(Double.valueOf(edPercDeLucro.getText().toString()));
            pro.setPrecoDeVenda(Double.valueOf(edPrecoDeVenda.getText().toString()));

            AlertDialog.Builder builder = new AlertDialog.Builder(CadProdutos.this);
            builder.setTitle("Deseja Excluir?");
            builder.setMessage("O produto será deletado!");

            builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {

                public void onClick(DialogInterface dialog, int which) {
                    getProDao().excluir(pro);
                    montaTela(new Produto());
                    ToastManager.show(getBaseContext(), "Produto Excluído",
                            ToastManager.INFORMATION);

                }

            });

            builder.setNegativeButton("Cancelar", new DialogInterface.OnClickListener() {

                public void onClick(DialogInterface dialog, int which) {
                    Toast.makeText(CadProdutos.this, "Cancelado", Toast.LENGTH_LONG).show();
                }
            });

            AlertDialog alert = builder.create();
            alert.show();

        }
    });
}

private void montaTela(Produto produto) {
    edId.setText(String.valueOf(produto.getId()));
    edDescricao.setText(produto.getDescricao());
    edPrecoDeCusto.setText(String.valueOf(produto.getPrecoDeCusto()));
    edPercDeLucro.setText(String.valueOf(produto.getPercDeLucro()));
    edPrecoDeVenda.setText(String.valueOf(produto.getPrecoDeVenda()));


}

public ProdutoDao getProDao() {
    if (prodDao == null) {
        prodDao = new ProdutoDao();
    }
    return prodDao;
}

public void tirarFoto(View view) {
    Intent i = new Intent("android.media.action.IMAGE_CAPTURE");
    startActivityForResult(i, 0);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (data != null) {
        Bundle bundle = data.getExtras();

        if (bundle != null) {

            Bitmap bitmap = (Bitmap) bundle.get("data");


            imgView.setImageBitmap(bitmap);
        }
    }
  }
  }
    
asked by anonymous 15.01.2016 / 18:46

1 answer

1

As you use TextWatcher to apply the mask, I suggest using View.OnFocusChangeListener

Problem: It will only work when the user takes focus from one of the fields!

Implementation example:

OnFocusChangeListener focusListener = new View.OnFocusChangeListener() {

    public void onFocusChange(View v, boolean hasFocus) {
        if(!hasFocus)
        {
        // Aqui você pega os valores dos campos, realiza a soma e adiciona no no outro campo
        }
    }
};

edPrecoDeCusto.setOnFocusChangeListener(focusListener);
edPrecoDeCusto.setOnFocusChangeListener(focusListener);

Note: I will not go into the merits of the calculation, just show how to implement OnFocusChangeListener !

    
15.01.2016 / 20:24