数値に関するデータをリスト ビューに表示する必要があります。これらのデータは、sqlite であるデータベースから取得します。
リストビューを埋めるためにシンプルなカーソルアダプターを使用しています。問題は、100 万以上の数値が指数形式で格納されることです。たとえば、1000 000 のような数値を挿入すると、1+06E として格納されます。問題は、1 000 000 として表示する必要があることです。しかし、カーソルまたは simplecursadapter 内でその形式を変更することはできません。
リストビューを埋めるための私のコードは次のとおりです。
Cursor c = admin.obtenerCursorGastosVarFecha(fechaSelUs);
// The desired columns to be bound
String[] columnas = new String[] {"_id", "Descripcion", "Costo", "Fecha_Creado"};
// the XML defined views which the data will be bound to
int[] views = new int[] {R.id.IdGstVar, R.id.DescGstVar, R.id.CostoGstVar, R.id.FechaGstVar };
// create the adapter using the cursor pointing to the desired data
//as well as the layout information
dataAdapter = new SimpleCursorAdapter(this, R.layout.lista_gastos_variables, c, columnas, views, 0);
私はすべて文字列としてここに来ていますが、100万以上の数値は指数数で表示されます
このコードを試しましたが、まったく機能しません。
1,000 万未満の値を変更するだけでなく、値を四捨五入または変更するため、たとえば 8 888 888 を挿入すると 8 888 890 と表示されます。
データベースに格納されているすべての数値を自然数で表示する必要があります。
また、指数形式に変更せずに数値を含む行をデータベースに挿入する方法がある場合、どのように行われますか? ご助力ありがとうございます!
dataAdapter.setViewBinder(new SimpleCursorAdapter.ViewBinder() {
@Override
public boolean setViewValue(View view, Cursor cursor, int column) {
if( column == 2 ){ // let's suppose that the column 0 is the date
TextView tv = (TextView) view;
// here you use SimpleDateFormat to bla blah blah
tv.setText(""+Double.parseDouble(cursor.getString(cursor.getColumnIndex("Costo"))));
return true;
}
return false;
}
});