2016-09-10 5 views
0

Я начинаю изучать Android-программирование, и теперь я пытаюсь отобразить тост с помощью специальной строки.Тост с пользовательским сообщением

Random r = new Random(); 
int i = r.nextInt(100 - 90 + 1) + 90; 
String message = String.format(r); 

Toast.makeText(getApplicationContext(), "@".replace(message), Toast.LENGTH_LONG).show(); 

Любые идеи, что я делаю неправильно? Я получаю следующее сообщение об ошибке:

Error:(40, 40) error: no suitable method found for format(Random) method String.format(String,Object...) is not applicable (argument mismatch; Random cannot be converted to String) method String.format(Locale,String,Object...) is not applicable (argument mismatch; Random cannot be converted to Locale)

+0

Что именно не так? Вы получили сообщение об ошибке? –

+0

Да. Ошибка: (40, 40) ошибка: не найдено подходящего метода для формата (Random) метод String.format (String, Object ...) не применим (несоответствие аргумента; Random не может быть преобразовано в String) метод String. format (Locale, String, Object ...) не применимо (несоответствие аргумента; Random не может быть преобразовано в Locale) – Joe

+0

@Joe Я думаю, вы хотели отобразить 'i', поэтому вам нужно поместить его в' String.format() ', а не ваш объект' Random', например 'String message = String.format (i);' – Jezor

ответ

0

Даже если вы нашли ответ сами, я все еще хочу привести несколько примеров, чтобы убедиться, что вы понимаете, как String#format(String, Object...) работы:

Random r = new Random(); 
String message = null; 

int i = r.nextInt(100 - 90 + 1) + 90; 
message = String.format("%d", i); 

float f = 0.1; 
message = String.format("%f", f); 

String s = "Hello world"; 
message = String.format("%s", s); 

// "Hello world, f=0.1" 
message = String.format("%s, f=%f", s, f); 

Дополнительное разъяснение о форматировании java можно получить по адресу:

0

Ok. Похоже, int не может быть преобразован в String.

Так это фиксированная моя проблема:

Random r = new Random(); 
int i = r.nextInt(100 - 90 + 1) + 90; 
String message = String.format(Integer.toString(i)); 

Toast.makeText(getApplicationContext(), message, Toast.LENGTH_LONG).show();