0

我最近开始学习 Android,并且正在做一个学校需要的小项目,我发现并使用下面的代码适应了我的需求,该代码从 Db 获取值并在 Textview 中查看它们。一切正常,但这些值应该以“货币”格式显示 00:00 我已经阅读了网上的信息,但无法使用该格式调整 TextView,有人可以帮助我吗?

private class Dettaglio {


    double entrate;
    double uscite;
    double risparmio;

}

而(c.moveToNext()){

            Dettaglio d = new Dettaglio();

            d.entrate = c.getDouble(0);
            d.uscite = c.getDouble(1);
            d.risparmio = c.getDouble(2);

            dettagli.add(d);
        }
        c.close();
    }

    db.close();

    ListAdapter adapter = new ArrayAdapter<Dettaglio>(this, R.layout.dettaglio_row, R.id.tv_mese, dettagli){

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            View row = super.getView(position, convertView, parent);

            Log.v("Bilancio", "Creo elemento in posizione "+position);

            String month = new DateFormatSymbols(Locale.getDefault()).getMonths()[position];
            TextView tvMonth = (TextView) row.findViewById(R.id.tv_mese);
            tvMonth.setText(month);

            TextView tvEntrate, tvUscite, tvRisparmio;
            tvEntrate = (TextView) row.findViewById(R.id.tv_ele_uscita);
            tvUscite = (TextView) row.findViewById(R.id.tv_uscita);
            tvRisparmio = (TextView) row.findViewById(R.id.tv_risparmio);


            Dettaglio d = dettagli.get(position);

            tvEntrate.setText(d.entrate+"");
            tvUscite.setText(d.uscite+"");
            tvRisparmio.setText(d.risparmio+"");
            return row;
        }
    };
    lista.setAdapter(adapter);

    //Calcolo il totale annuale
    double totaleE = (double) 0;        
    double totaleU = (double) 0;        
    double totalerisparmio = (double) 0;    


    double val = (double) 0;
    double val1 = (double) 0;



    for (Dettaglio d : dettagli){
        totaleE += d.entrate;
        totaleU += d.uscite;

    }

    TextView riepilogoE = (TextView) findViewById(R.id.tv_riepilogo_entrate);
    TextView riepilogoU = (TextView) findViewById(R.id.tv_riepilogo_uscite);
    TextView risp = (TextView) findViewById(R.id.tv_riepilogo_risparmio);


    riepilogoE.setText(""+totaleE);
    riepilogoU.setText(""+totaleU);

    val = Float.parseFloat(riepilogoE.getText().toString());
    val1 = Float.parseFloat(riepilogoU.getText().toString());


    totalerisparmio = val - val1;

    risp.setText(""+totalerisparmio);

}
4

2 回答 2

0

尝试

etichetta1.setText(String.format("$%.2f", Float.valueOf(c.getString(0));

于 2013-09-13T16:39:38.870 回答
0

好的

使用 NumberFormat.getCurrencyInstance() ;

Double value = Double.valueOf(c.getString(0)) ;
NumberFormat formatter = NumberFormat.getCurrencyInstance();
String gainString = formatter.format(value );
etichetta1.setText(gainString);
于 2013-09-13T16:40:56.827 回答