Как получить имя ресурса из идентификатора ресурса
В моем макете я определил что-то вроде этого.
<RadioButton
android:id="@+id/radio1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Dnt want this text" />
Предположим, что какая-то функция в активности возвращает мне этот идентификатор (идентификатор radioButton). Теперь я хочу получить этот текст radio1 из этого идентификатора. Короче хочу вернуть текст radio1 написанный на android:id="@+id/radio1"
Может кто-нибудь сказать мне, как это возможно?
5 ответов
В своей деятельности попробуйте это:
чтобы получить строку как
radio1
:getResources().getResourceEntryName(int resid);
чтобы получить строку как
com.sample.app:id/radio1
:getResources().getResourceName(int resid);
В Котлине сейчас:
val name = v.context.resources.getResourceEntryName(v.id)
У вас есть идентификатор (тип 'long') из этого идентификатора, который вы хотите использовать для идентификатора переключателя (имя), который является radio1. Вы используете это
getResources().getResourceEntryName(id);
при использовании выше вы можете получить название радио кнопки, т.е. радио1. здесь идентификатор параметра, который у вас есть (длинный тип). Попробуйте это поможет вам на 100%.
Котлин:
val name = v.context.resources.getResourceEntryName(v.id)
Если я прав, то что вы хотели получить - это слово "radio1" (из самого идентификатора?), Так что если это так, то сначала вам нужно получить его идентификатор.
int intname= buttonname.getId();
тогда получите результат
String stringname= get regetResources().getResourceEntryName(intname);
надеялся, что помог
Вы имеете в виду, что хотите взять текст строки идентификатора?
Поскольку вы определили это, вы должны знать, что это такое.
Если у вас есть макет, и вы хотите узнать, имеет ли View определенный идентификатор, вы можете пройти весь макет и проверить с помощью getId(), является ли id каждого View идентификатором, который вы ищете.
Надеюсь, это поможет (если я правильно понял, ваш вопрос..:))