我使用以下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?
提前致谢。
答案 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;
}
});