我有從數據庫填充ListView的這種方法。一切正常。但是我想讓其中一個文本框顯示兩位小數的值。Android從數據庫填充ListView,格式textview有兩位小數
這種情況以前也有人問,很多標記是重複的,但問題是我怎麼能實現兩個小數和我在哪裏做以下
代碼正如你所看到的,我嘗試了很多不同的東西沒有成功。也許我需要建立一個自定義適配器,我設置我的TextViews?
而且因爲答案不是等在這裏給出的請不要將此標記爲重複:
Best way to Format a Double value to 2 Decimal places
或在這裏:
Round a double to 2 decimal places
或在這裏:
How to round a number to n decimal places in Java
這裏是我的代碼和我的問題是我可以在哪裏實現我的代碼四捨五入至兩位小數?
private void populateListViewFromDB(int month, int year) {
Cursor cursor = dbHandler.getMonth(month,year);
// TextView setEx = (TextView)findViewById(R.id.oneRowExkl);
// set = Double.parseDouble(setEx.getText().toString());
// setEx.setText(String.format("%.2f", set));
//TextView ex = (TextView)findViewById(R.id.oneRowExkl);
//ex.setText(String.format("%.2f", Double.parseDouble(MyDBHandler.INKL)));
String[] fromFieldNames = new String[] {
MyDBHandler.COLUMN_PRODUCTNAME, MyDBHandler.DATE,
MyDBHandler.INKL };
int[] toViewIDs = new int[] { R.id.oneRowName, R.id.oneRowDate,
R.id.oneRowExkl };
// Create adapter to may columns of the DB onto element in the UI.
@SuppressWarnings("deprecation")
SimpleCursorAdapter myCursorAdapter = new SimpleCursorAdapter(this, //
Context
R.layout.one_row, // Row layout template
cursor, // cursor (set of DB records to map)
fromFieldNames, // DB Column names
toViewIDs // View IDs to put information in
);
ListView myList = (ListView) findViewById(R.id.list1);
// myList.setBackgroundColor(Color.GRAY);
myList.setAdapter(myCursorAdapter);
}
這看起來像一個很好的解決方案的代碼,但是新手,因爲我沒得到它的工作。 –
請參閱我的編輯以獲取更多選項...請注意,您需要知道它在db(數據類型)中的含義,因此如果存儲爲如此,則可以調用cursor.getFloat();如果存儲爲VARCHAR,則可以調用getString()然後,您只需以您喜歡的方式轉換數據(格式爲兩位小數)。 columnIndex是遊標的活動列,因此將此數字更改爲您需要的數字(您需要格式化) –
好吧,我會盡力處理這個問題。我將它們中的兩個存儲爲字符串,另一個我需要格式化爲真實的 –