Intereting Posts
Android меняет цвет фона для фрагмента предпочтения Получите minSdkVersion и targetSdkVersion из файла apk Установите границу и цвет фона textView Лучший способ вызова функции Метод с Phonegap 3.0 из js Это текстовое поле не указывает тип ввода или подсказку Рисунок Android на поверхности и холсте Тестирование RxJava2 с использованием Espresso и получение исключения нулевого указателя, когда suscribeOn Скользящая компоновка вкладок для языков справа налево Android: могу ли я включить GPS без перенаправления пользователя на экран настроек, например, в приложении «Google Maps» Как обрабатывать состояния ошибок с помощью LiveData? Как перенаправить на локальную страницу html в Android-приложение phonegap? Объявления Youtube перед целевым видео Как создать панель кнопок верхнего или нижнего колонтитула для приложения для Android Как прочитать файл в битовой карте Java? Почему я должен «переопределить метод суперкласса» с помощью @Override?

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)