How do I apply a currency mask in my listView? [duplicate]

1

I'd like to know how to implement my monetary mask on ListView of products. I ask that you be the most specific and detailed because I do not have much experience. Thank you.

public class ProdutoAdapter extends BaseAdapter {
    private Context context;
    private List<Produto> produtos;

    public ProdutoAdapter(Context context, List<Produto> produtos) {
        this.context = context;
        this.produtos = produtos;
    }

    public int getCount() {
        return produtos.size();
    }

    public Object getItem(int position) {
        return produtos.get(position);
    }

    public long getItemId(int position) {
        return produtos.get(position).getId();
    }

    public View getView(int position, View convertView, ViewGroup parent) {
        Produto produto = produtos.get(position);

        LayoutInflater layout = (LayoutInflater) context
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        View view = layout.inflate(R.layout.linhapro, null);

        ImageView imgImageView = (ImageView) view.findViewById(R.id.imgProduto);
        imgImageView.setImageResource(R.drawable.sem_foto);

        TextView edDescricao = (TextView) view.findViewById(R.id.textView1);
        edDescricao.setText(produto.getDescricao());

        TextView edPreco = (TextView) view.findViewById(R.id.textView2);
        edPreco.setText(String.valueOf(produto.getPrecoDeVenda()));
        return view;
    }
}
    
asked by anonymous 18.01.2016 / 20:39

1 answer

4

You can use NumberFormat of Java itself for this, using the getCurrencyInstance(Locale) method.

In Locale , you need to pass in the currency format according to your locale. In the case for Brazil:

Locale locale = new Locale("pt", "BR");

In the case for Portugal:

Locale locale = new Locale("pt", "PT");

Now, just pass your Locale as a parameter:

double valor = produto.getPrecoDeVenda();

NumberFormat formatter = NumberFormat.getCurrencyInstance(locale);
String valorFormatado = formatter.format(valor);
edPreco.setText(valorFormatado);
    
18.01.2016 / 21:44