2016-08-15 60 views
0

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

这里是我试过:

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的

回答

0

现在开始尝试这样的事情在$货币

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

Locale类提供了不同国家的许多区域设置常量转换文本。

如果您需要其他货币,请转至此链接。你可以从这个类提供的静态变量看。

Java Locale

+0

它仍然没有工作, 以下是错误'致命异常:主要 过程:com.rki,PID:14190 java.lang.IllegalArgumentException异常:叛逆类:类java.lang.String在java.text.Format.format(Format.java:93) at com.rki上的java.text.DecimalFormat.format(DecimalFormat.java:705)处的java.text.NumberFormat.format(NumberFormat.java:307) adapter.ItemAdapter.getView(ItemAdapter.java:86)' – Allegra

+0

请在这3个语句中加入断点并验证语言环境和NumberFormat对象是否正确初始化 –

+1

同时让我知道您传递格式函数的用例 –