How do I apply monetary mask to my listview?

Asked

Viewed 137 times

1

I would like to know how to implement my monetary mask on ListView products. I ask you to be the most specific and detailed as I do not have much experience. Thank you.

inserir a descrição da imagem aqui

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;
    }
}
  • 5

    The same way you did with the Textview

  • ´ TextView edPreco = (TextView) view.findViewById(R.id.textView2); edPreco.setText(Mask.addMask(String.valueOf(produto.getPrecoDeVenda(), "R$#.###.###,##")));&#xA; return view; ´ fiz dessa maneira que é a mesma do TextView porém está aparecendo um erro : no suitable method found for valueOf

1 answer

4


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

In Locale, you need to pass in what currency format according to your location. 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);

Browser other questions tagged

You are not signed in. Login or sign up in order to post.