Android 对 ListView 的一项使用 NumberFormat
Posted
技术标签:
【中文标题】Android 对 ListView 的一项使用 NumberFormat【英文标题】:Android use NumberFormat for an item of a ListView 【发布时间】:2011-09-14 13:22:43 【问题描述】:我在 Edittext 中有一个字符串,我将其转换为这样的浮点数:
float montantFac = Float.valueOf(etMontantFac.getText().toString());
我将它保存在数据库中,然后从数据库中取回它并再次将其分配给此 EditText。
etMontantFac.setText(facture.getString(facture.getColumnIndexOrThrow("montant_fa")));
我的问题是它显示了一些带指数的数字。 例如,1000000 显示如下:1e+06
如何才能只显示带有数字的值(没有字母或 + 或其他任何东西)?
编辑:
@Pratik:谢谢,效果很好!
我也需要对 ListView 的一个项目执行相同的操作,但在这种情况下我不知道如何使用您的解决方案。你能帮帮我吗?
这是我的列表视图:
private void fillData()
Cursor cuFactures = db.recupListeFacture(triFactures, argumentWhereVhc, choixVhc, argumentWhereGar, choixGar);
startManagingCursor(cuFactures);
ListAdapter adapter = new SimpleCursorAdapter(this,
R.layout.facture_ligne,
cuFactures,
new String[] "libelle_fa", "nom_vhc", "montant_fa", "nom_garage", "date_fa",
new int[] R.id.listeNomFac, R.id.listeNomVhcFac, R.id.listeMontantFac, R.id.listeNomGarFac, R.id.listeDateFac);
setListAdapter(adapter);
相关字段始终为“montant_fa”
提前谢谢你!
【问题讨论】:
你试过DecimalFormat
吗? developer.android.com/reference/java/text/DecimalFormat.html
【参考方案1】:
查看此链接的格式
http://download.oracle.com/javase/tutorial/i18n/format/decimalFormat.html
试试这个方法
float val = facture.getFloat(facture.getColumnIndexOrThrow("montant_fa"));
NumberFormat nf = NumberFormat.getNumberInstance(loc);
DecimalFormat df = (DecimalFormat)nf;
df.applyPattern(pattern);
String output = df.format(value);
etMontantFac.setText(output);
【讨论】:
那部分 DecimalFormat df = (DecimalFormat)nf; df.applyPattern(模式);没有必要。默认的语言环境格式通常就足够了【参考方案2】:我知道这是旧的,但这里是format data between sqlite and listview,以防有人试图做同样的事情。我有类似的问题并用它解决了。
这是我的例子
adapter = new SimpleCursorAdapter(....);
adapter.setViewBinder(new SimpleCursorAdapter.ViewBinder()
@Override
public boolean setViewValue(View view, Cursor cursor, int columnIndex)
if (columnIndex == cursor.getColumnIndex("columnname"))
TextView tv = (TextView) view;
NumberFormat nf = NumberFormat.getInstance(Locale.ENGLISH);
tv.setText(nf.format(cursor.getInt(columnIndex)));
// must return true to be applied
return true;
return false;
);
【讨论】:
以上是关于Android 对 ListView 的一项使用 NumberFormat的主要内容,如果未能解决你的问题,请参考以下文章
Android:ListView 仅显示第一项。 (请参考提供的图片)