Android, как использовать строковый ресурс в классе Java - PullRequest
30 голосов
/ 12 ноября 2011

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

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

getString(R.string.address)

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

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

Ответы [ 4 ]

37 голосов
/ 12 ноября 2011

У класса нет контекста, и для использования строкового ресурса необходим контекст.Поэтому просто вызовите класс из действия и задайте параметр context, а в своем конструкторе класса просто используйте этот контекст для получения строкового ресурса.

В своем пользовательском классе вам необходимо импортировать пространство имен R для проектачтобы получить идентификатор ресурса.

import com.myrandomapp.R;

Затем получить фактическую строку

context.getString(R.string.COOL_STRING)
16 голосов
/ 12 ноября 2011

Вы можете передать контекст класса Activity классу java и получить доступ к ресурсам.

Из вашего класса активности

 Helper helper = new Helper(this);

Ваш класс Java

public class Helper {

    Helper(Context c){
        c.getString(R.string.address);
    }
}
11 голосов
/ 14 сентября 2015

Вы можете создать статический 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 не подходит для использования. Прочитайте это для получения дополнительной информации.

0 голосов
/ 01 января 2016

Вы могли бы сделать, если добавите эту строку:

// this is the object itself, and idString is the ID String bound to the literal.
this.getString(R.string.idString)

Надеюсь, этот комментарий поможет вам!

Brs.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...