2016-08-15 31 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

同時讓我知道您傳遞格式函數的用例 –