用于设置输入文本格式的 Android TextView XML 属性



我正在通过 SimpleCursorAdapter 使用 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) 并由 c.getColumnNames(3) 填充的文本视图。在代码中的哪个点可以插入格式语句。

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

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

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

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

尝试如下:

double roundTwoDecimals(double d)
{
    DecimalFormat twoDForm = new DecimalFormat("#.##");
    return Double.valueOf(twoDForm.format(d));
}

您也可以使用

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

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

最新更新