android - 如何在textview中显示货币格式

标签 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

最佳答案

尝试类似的方法将文本转换为美元货币

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

关于android - 如何在textview中显示货币格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38952019/

相关文章:

android - java.net.SocketException : recvfrom failed: ECONNRESET (Connection reset by peer) Over WIFI 异常

java - 为特定用户查询 Meetings 时,Sugar get_entry_list 返回 "Invalid Session ID"

android - 无法在 textView 中显示获得的 unix 时间

android - FragmentTabHost 不显示选项卡内容

三星tab2平板电脑安卓开发

android - 将 parent 用于可绘制资源

android - achartengine : the label of axis dont appear if the graphic is empty 图形问题

android - Kotlin : Sign In using google Fails

android - 安卓手机的唯一名称

java - 使用 Gson 访问名为 "class"的 JSON 值