1

我正在通过 SimpleCursorAdapter 使用 TextView 作为一行填充 ListView。TextView 中的数字显示为 8 或 2.6786 等。我希望它们显示为 8.00 或 2.67 等。可以通过 XML 完成(如输入类型方法等)。请提出一个出路。代码是:

// THE DESIRED COLUMNS TO BE BOUND
columns = new String[] { slStock.KEY_SCRIPT,  getColumnName(2),c.getColumnName(3)};
// THE XML DEFINED VIEWS FOR EACH FIELD TO BE BOUND TO
to = new int[] { R.id.tvstockscrpt, R.id.tvqty ,R.id.tvstockrate};
// CREATE ADAPTER WITH CURSOR POINTING TO DESIRED DATA

SimpleCursorAdapter cursAdapter = new   SimpleCursorAdapter(this,R.layout.rowstock,   c,columns, to); 

lvstockdisplay.setAdapter(cursAdapter);

在这里,您会注意到游标 c 获取数据(从后台的数据库 sql 查询中)并直接将其填充到 ListView 中。问题是如何格式化游标数据以表示其 id 为(R.id.tvstockrate)的 TextView并且由 c.getColumnNames(3) 填充。在代码中的哪一点可以插入格式语句。

4

3 回答 3

0

我不认为您可以通过 XML 格式化数字,但以下应该可以格式化为 2 位小数:

DecimalFormat numbers = new DecimalFormat("#.##");  

您应该能够根据您的应用程序的要求进行调整。

于 2013-10-14T06:21:08.383 回答
0

您不能从您的 xml 中舍入值,因此您必须在光标中获取值并将其转换为 double 并使用以下代码后以编程方式进行操作。

尝试如下:

double roundTwoDecimals(double d)
{
    DecimalFormat twoDForm = new DecimalFormat("#.##");
    return Double.valueOf(twoDForm.format(d));
}
于 2013-10-14T06:22:41.127 回答
0

您还可以使用

DecimalFormat df = new DecimalFormat("#.##");

http://developer.android.com/reference/java/text/DecimalFormat.html

于 2013-10-14T06:29:32.340 回答