2016-08-15 13 views
0

通貨フォーマットをテキストビューで表示したいとします。 テキストビューで通貨フォーマットを表示する方法

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

} 
をしかし、それはまだエラーです: データベース2000 ある場合例えば、それはここでは2.000

になりますと、私が試したということです。私は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); 

ロケールクラスは、さまざまな国のために多くのロケールの定数を提供して、あなたのテキストを変換するため、このような何かを試してみてください、私を助けることができます。

他の通貨が必要な場合は、このリンクをクリックしてください。このクラスが提供する静的変数を見ることができます。

Java Locale

+0

それはまだ働いていない、ここで はエラー '致命的な例外です:メイン プロセス:com.rki、PID:14190 java.lang.IllegalArgumentExceptionが:悪いクラス:クラスjava.lang.Stringでjava.text.Format.format(Format.java:93)のjava.text.DecimalFormat.format(DecimalFormat.java:705)のjava.text.NumberFormat.format(NumberFormat.java:307) at com.rki。 adapter.ItemAdapter.getView(ItemAdapter.java:86) ' – Allegra

+0

これらの3つのステートメントにブレークポイントを設定して、ロケールとNumberFormatオブジェクトが正しく初期化されていることを確認してください –

+1

また、フォーマット関数で渡すユースケースを教えてください –