использование строкового ресурса в тосте - PullRequest
10 голосов
/ 07 сентября 2011

Мой код:

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). Может ли кто-нибудь просветить меня, пожалуйста?

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

Баз

Ответы [ 5 ]

21 голосов
/ 07 сентября 2011

Изменить на

 public static void ToastMemoryShort (Context context) {

        Toast.makeText(context, context.getString(R.string.toast_memoryshort), Toast.LENGTH_LONG).show();
        return;
        }
4 голосов
/ 07 сентября 2011

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

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

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

2 голосов
/ 06 апреля 2015

Вы можете сделать свой тост более общим:

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" );

или, обратившись к strings.xml, вот так:

toast( this.getString(R.string.toast_memoryshort) );
0 голосов
/ 11 июля 2019

Используйте приведенный ниже код для получения желаемого результата:

Toast.makeText(getApplicationContext(),getString(R.string.exit_survey_toast),Toast.LENGTH_LONG).show();

замените exit_survey_toast на строковое значение.

0 голосов
/ 10 июня 2016

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

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

для:

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

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

...