Android: Java: использование строкового ресурса в Toast

Мой код:

public static void ToastMemoryShort (Context context) { CharSequence text = getString(R.string.toast_memoryshort); //error here Toast.makeText(context, text, Toast.LENGTH_LONG).show(); return; } 

Но я получаю «Не могу сделать статическую ссылку на нестатический метод getString (int) из типа Context» в Eclipse. Я пытаюсь подготовиться к локализации моего приложения (получение всех жестко закодированных строк в ресурсы), поэтому, где у меня есть:

 getString(R.string.toast_memoryshort) 

Раньше у меня была жестко закодированная строка, которая была в порядке.

Я не уверен, что здесь происходит (Java noob). Может ли кто-нибудь просветить меня, пожалуйста?

Большое спасибо

Baz

Solutions Collecting From Web of "Android: Java: использование строкового ресурса в Toast"

Просто используйте это вместо этого:

MakeText (контекст контекста, int resId, int duration) Сделайте стандартный тост, который просто содержит текстовое представление с текстом из ресурса.

С http://developer.android.com/reference/android/widget/Toast.html

Изменить на

  public static void ToastMemoryShort (Context context) { Toast.makeText(context, context.getString(R.string.toast_memoryshort), Toast.LENGTH_LONG).show(); return; } 

Вы могли бы сделать свой тост более общим, как это:

 public void toast(String msg){ Context context = getApplicationContext(); CharSequence text = msg; int duration = Toast.LENGTH_SHORT; Toast toast = Toast.makeText(context, text, duration); toast.show(); } 

Затем просто позвоните, когда вам это нужно:

 toast( "My message hardcoded" ); 

Или используя strngs.xml следующим образом:

 toast( this.getString(R.string.toast_memoryshort) ); 

Вы должны изменить

 CharSequence text = getString(R.string.toast_memoryshort); //error here 

для:

 CharSequence text = context.getString(R.string.toast_memoryshort); 

Функция getString реализована в Context # getString (int)