Как получить имя ресурса из идентификатора ресурса


В моем макете я определил что-то вроде этого.

<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 ответов

Решение

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

  1. чтобы получить строку как radio1:

    getResources().getResourceEntryName(int resid);
    
  2. чтобы получить строку как 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 идентификатором, который вы ищете.

Надеюсь, это поможет (если я правильно понял, ваш вопрос..:))

Другие вопросы по тегам