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 の値に由来します。これを何らかの形でフォーマットして、カーソル (リストビューをフィードする) がポイントの後に 2 桁でこの 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 に答える