2

我使用以下 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”来自一个 double 值。我可以以某种方式格式化它,以便我的光标(它提供一个列表视图)将在点后显示这个双精度数(如货币价值)?

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

提前致谢。

4

1 回答 1

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;
    }
});
于 2012-07-30T19:18:05.523 回答