Подтвердить что ты не робот

Android как использовать строковый ресурс в классе java

В моем классе java я хочу использовать строковый ресурс из strings.xml.

для этого я должен использовать, как показано ниже,

getString(R.string.address)

если мой класс - это активность, а затем его принятие. Но мой класс - простой класс java, как я могу его использовать?

Возможно ли это? Спасибо вам

4b9b3361

Ответ 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.