2013-06-23 2 views
-1

Обычно мы используем R.String.btnClose для получения идентификатора.
Состояния, я надеюсь использовать следующий код для ID, я знаю, что код неправильный. Я не знаю, поддерживает ли Java макрос var, если да, как я могу написать код? Благодаря!Могу ли я использовать макрос var для получения идентификатора?

Строка s = "btnClose"
R.string.s

ответ

1

Возможно, вы захотите попробовать Resources.getIdentifier.

Эквивалентный для

int id = R.string.btnClose; 

будет

int id = getResources().getIdentifier("btnClose", "string", getPackageName()); 

Примечание: Использование этой функции не рекомендуется. Гораздо эффективнее извлекать ресурсы по идентификатору, чем по имени.

Например, у вас может быть Map<String, Integer>, который возвращает ваш идентификатор от имени.

0

Внутри использования деятельности это:

String s = getString(R.string.btnClose); 

Не в деятельности:

public String getText(Context context, int resourceId) 
{ 
    Resources resources = context.getResources(); 
    return resources.getString(resourceId); 
} 

С наилучшими пожеланиями.