Как форматировать longs в android для отображения двух цифр

У меня есть таймер обратного отсчета, который показывает секунды от 60 до 0 (таймер обратного отсчета 1 мин). Когда он достигает 1 цифры цифр, таких как 9,8,7.., он показывает 9 вместо 09. Я попытался использовать String.format("%[B]02d[/B]", x);, где я преобразовал x из long в строку. Это не сработало.

Мне нужен эквивалент String.format("%2d", 1)

Ответ 1

Вы можете выполнить его с помощью DecimalFormat:

NumberFormat f = new DecimalFormat("00");
long time = 9;
textView.setText(f.format(time));

Вывод:

09

Или вы можете использовать String.format():

String format = "%1$02d"; // two digits
textView.setText(String.format(format, time));

Ответ 2

Использование: text.setText(String.format(" %02d", i)); где i - целочисленное значение

Ответ 3

Почему бы просто не использовать оператор if?

String str = x < 10 ? "0" + String.valueOf(x) : String.valueOf(x);

Это должно сделать трюк.

Ответ 4

Akshat Bhai попытается использовать это:

tv.setText(new DecimalFormat("##").format(var));

Ответ 5

TextView time; 
int hour=0,minute=0,second=0;
time.setText((String.format("%02d", hour))+":"+(String.format("%02d", minute))+":"+(String.format("%02d", second)));

время для TextView