2016-08-15 7 views
0

Я хочу отобразить формат валюты в текстовом виде. , например, если в базе данных 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

ответ

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

это все еще не работает, здесь ошибка 'FATAL ИСКЛЮЧЕНИЕ: главный процесса: com.rki, PID: 14190 java.lang.IllegalArgumentException: Плохой класс: класс java.lang.String в java.text.NumberFormat.format (NumberFormat.java.307) в java.text.DecimalFormat.format (DecimalFormat.java:705) в java.text.Format.format (Format.java:93) at com.rki. adapter.ItemAdapter.getView (ItemAdapter.java:86) ' – Allegra

+0

Пожалуйста, поставьте контрольные точки в этих трех операторах и убедитесь, что объект locale и NumberFormat правильно инициализируются. –

+1

Также дайте мне знать пример использования, который вы передаете в функции формата –

Смежные вопросы