DecimalFormat form = new DecimalFormat("#.##", new DecimalFormatSymbols(Locale.US));
EditText et;
et.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_DONE) {
double a = Double.parseDouble(et.getText().toString());
et.setText(form.format(a));
}
return false;
}
});
Что происходит, когда вы покидаете этап редактирования, он форматирует поле в нужном формате. В этот момент у него есть только 2 десятичных символа. Я думаю, что это довольно простой способ сделать это.
Пулы памяти наиболее эффективны для обработки стилей транзакций, где вы можете выделить пул, а затем, когда транзакция завершена, просто сбросить ее в забвение. Реальное ускорение заключается не в том, что каждое выделение будет намного быстрее, чем если бы у вас было практически нулевое фрагментирование памяти в чрезвычайно долго работающем приложении.
В некотором роде, ваши приложения не гарантируют использование пулов памяти
Слепая оптимизация не хороша. Попытайтесь использовать средство выделения памяти Google, Вы не должны даже перекомпилировать свое приложение. Можно найти то, в чем необходимо знать здесь:
http://google-perftools.googlecode.com/svn/trunk/doc/tcmalloc.html
Gaetano
Возможно, вы захотите отследить проблемы с производительностью до распределения памяти, прежде чем начинать оптимизацию для этого.
Итак, сузьте свой профиль, чтобы точно определить местонахождение проблемы. Это может быть много вызовов одного и того же кода, которые могут не занять много времени при вызове только один раз.