Allegra
Allegra

Reputation: 95

how to display currency format in textview

I want to display the currency format in textview. for example, if in the database is 2000 then it will be 2.000

here is that I've tried:

    public class ItemAdapter extends BaseAdapter {

    ArrayList<HashMap<String, String>> data;
    private Context context;
    private ArrayList<ModelItems> arraylistitem;

    LayoutInflater inflater;
    ItemsActivity main;

    public ItemAdapter(ItemsActivity main, List<ModelItems> itemsModel) {
        this.main = main;
    }

    public ItemAdapter(Context context,
                       ArrayList<HashMap<String, String>> arraylist, List<ModelItems> populationlist) {
        this.context = context;
        this.main.itemsModel = populationlist;
        data = arraylist;
        this.arraylistitem = new ArrayList<ModelItems>();
        this.arraylistitem.addAll(populationlist);
    }

    @Override
    public int getCount() {
        return main.itemsModel.size();
    }

    @Override
    public Object getItem(int position) {
        return null;
    }

    @Override
    public long getItemId(int position) {
        return 0;
    }

    static class ViewHolderItem {
        TextView nameItem;
        TextView priceItem;
        ImageView imageItem;
    }

    public View getView(final int position, View convertView, ViewGroup parent) {

        ViewHolderItem holder = new ViewHolderItem();
        if (convertView == null) {
            LayoutInflater inflater = (LayoutInflater) main.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            convertView = inflater.inflate(R.layout.list_item, null);

            holder.nameItem = (TextView) convertView.findViewById(R.id.item_name);
            holder.priceItem = (TextView) convertView.findViewById(R.id.item_price);
            holder.imageItem = (ImageView) convertView.findViewById(R.id.imgItem);

            convertView.setTag(holder);
        } else {
            holder = (ViewHolderItem) convertView.getTag();
        }

        Locale locale = new Locale("id", "id");
        NumberFormat fmt = NumberFormat.getCurrencyInstance(locale);
        holder.priceItem.setText(fmt.format(this.main.itemsModel.get(position).getPrice()));
        holder.priceItem.setText(this.main.itemsModel.get(position).getPrice());
        holder.nameItem.setText(this.main.itemsModel.get(position).getName());
        return convertView;
    }

}

But it is still error. Can you help me, since I am beginning in Android

Upvotes: 2

Views: 4347

Answers (1)

Umair Farooq
Umair Farooq

Reputation: 1704

Try something like this for converting your text in $ currency

Locale locale = Locale.US;
NumberFormat fmt = NumberFormat.getCurrencyInstance(locale);
String currencyText = fmt.format(this.main.itemsModel.get(position).getPrice());
holder.priceItem.setText(currencyText);

The Locale class provides many Locale constants for different countries.

Go to this link if you want some other currency. You can look from static variables this class offers.

Java Locale

Upvotes: 3

Related Questions