использование строкового ресурса в тосте
мой код:
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) из контекста типа" в Eclipse. Я пытаюсь подготовиться к локализации моего приложения (получение всех жестко закодированных строк в ресурсы), поэтому у меня есть:
getString(R.string.toast_memoryshort)
у меня ранее была жестко закодированная строка, которая была в порядке.
Я не уверен, что здесь происходит (Java noob). Кто-нибудь может просветить меня, пожалуйста?
много спасибо
баз
4 ответов
просто использовать это вместо этого:
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" );
или путем ссылки на строки.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
функция реализована в контекст#getString (int)