Android как использовать строковый ресурс в классе java
В моем классе java я хочу использовать строковый ресурс из strings.xml.
для этого я должен использовать, как показано ниже,
getString(R.string.address)
если мой класс - это активность, а затем его принятие. Но мой класс - простой класс java, как я могу его использовать?
Возможно ли это?
Спасибо вам
Ответы
Ответ 1
У класса нет контекста и для использования строкового ресурса необходим контекст. Поэтому просто вызовите класс из действия и дайте параметр context
, и внутри вашего конструктора классов просто используйте этот контекст, чтобы получить строковый ресурс.
В вашем пользовательском классе вам нужно импортировать пространство имен R для проекта, чтобы получить идентификатор ресурса.
import com.myrandomapp.R;
Затем, чтобы получить фактическую строку
context.getString(R.string.COOL_STRING)
Ответ 2
Вы можете передать контекст класса Activity классу java и получить доступ к ресурсам.
Из класса активности
Helper helper = new Helper(this);
Ваш класс Java
public class Helper {
Helper(Context c){
c.getString(R.string.address);
}
}
Ответ 3
Вы можете создать статический Application Context
в своем пользовательском классе Application
public class App extends Application{
private static Context mContext;
@Override
public void onCreate() {
super.onCreate();
mContext = getApplicationContext();
}
public static Context getContext(){
return mContext;
}
}
Тогда вам просто нужно вызвать App.getContext().getResources()
, чтобы получить любые значения ресурсов.
Просто помните, что этот тип Context
есть Application
, поэтому есть вещи, которые этот Context
не подходит. Подробнее читайте .
Ответ 4
Вы можете сделать это, добавив эту строку:
// this is the object itself, and idString is the ID String bound to the literal.
this.getString(R.string.idString)
Я надеюсь, что этот комментарий поможет вам!
Brs.