Обновление
- Вы можете использовать
getString(R.string.some_string_id)
в обоих Activity
или Fragment
.
- Вы можете использовать
Context.getString(R.string.some_string_id)
, если у вас нет прямого доступа к методу getString()
. Как Dialog
.
Проблема - это где у вас нет Context
доступа , как в вашем классе Util
.
Предположим, метод ниже без контекста.
public void someMethod(){
...
// can't use getResource() or getString() without Context.
}
Теперь вы передадите Context
в качестве параметра в этом методе и будете использовать getString().
public void someMethod(Context context){
...
context.getString(R.string.some_id);
}
Что я делаю, это
public void someMethod(){
...
App.getRes().getString(R.string.some_id)
}
Что? Это очень просто использовать в любом месте вашего приложения!
Итак, вот уникальное Бонусное решение , с помощью которого вы можете получить доступ к ресурсам из любого места, например Util class
.
import android.app.Application;
import android.content.res.Resources;
public class App extends Application {
private static App mInstance;
private static Resources res;
@Override
public void onCreate() {
super.onCreate();
mInstance = this;
res = getResources();
}
public static App getInstance() {
return mInstance;
}
public static Resources getResourses() {
return res;
}
}
Добавить поле имени к вашему тегу manifest.xml
<application
.
<application
android:name=".App"
...
>
...
</application>
Теперь тебе пора.