如何在textview中显示货币格式

时间:2016-08-15 08:48:43

标签: android

我想在textview中显示货币格式。 例如,如果在数据库中是2000 那么它将是2.000

这是我尝试过的:

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

}

但它仍然是错误的。 你可以帮助我吗,因为我是从Android开始的

1 个答案:

答案 0 :(得分:3)

尝试以类似的方式转换$ currency

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

Locale类为不同的国家/地区提供了许多Locale常量。

如果您想要其他货币,请转到此链接。您可以从此类提供的静态变量中查找。

Java Locale