是否可以使用SimpleCursorAdapter格式化double?

时间:2012-07-30 19:03:10

标签: android listview simplecursoradapter double-precision

我使用以下SimpleCursorAdapter:

String campos[] = { "nome_prod", "codbar_prod",
        "marca_prod", "formato_prod", "preco"};
int textviews[] = { R.id.textProdName, R.id.textProdCodBar, R.id.textProdMarca,
        R.id.textProdFormato, R.id.textProdPreco };
CursorAdapter dataSource = new SimpleCursorAdapter(this, R.layout.listview,
        c_list, campos, textviews, 0);

这很好用。但是来自“campos []”的“preco”来自双重价值。我可以以某种方式格式化这个,所以我的光标(提供列表视图)将显示此点后面两位数的双倍(如金钱值)?

我可以用一些简单的方式来做,比如在某处使用“%。2f”,还是我必须继承CursorAdapter?

提前致谢。

1 个答案:

答案 0 :(得分:4)

您不需要继承CursorAdapter。只需创建一个ViewBinder并将其附加到适配器,它将转换光标特定列的值。像这样:

dataSource.setViewBinder(new ViewBinder() {
    public boolean setViewValue(View view, Cursor cursor, int columnIndex) {

        if (columnIndex == 5) {
                Double preco = cursor.getDouble(columnIndex);
                TextView textView = (TextView) view;
                textView.setText(String.format("%.2f", preco));
                return true;
         }
         return false;
    }
});