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

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


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

<RadioButton
android:id="@+id/radio1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Dnt want this text" />

Предположим, что некоторая функция в действии возвращает мне этот id (id of radioButton). Теперь я хочу получить этот текст radio1 из этого идентификатора. Короче говоря, я хочу получить текст radio1, написанный в android:id="@+id/radio1"

Может кто-нибудь сказать мне, как это возможно?

4b9b3361

Ответ 1

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

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

    getResources().getResourceEntryName(int resid);
    
  • чтобы получить строку типа com.sample.app:id/radio1:

    getResources().getResourceName(int resid);
    

Ответ 2

У вас есть id ('long' type) из этого идентификатора, к которому вы хотите получить доступ к кнопке id (имя), которая является радио1. Вы используете это

getResources().getResourceEntryName(id);

при использовании выше вы можете получить имя переключателя, то есть радио1. здесь параметр id, который у вас есть (длинный тип). Попробуйте это, это поможет вам на 100%.

Ответ 3

Вы хотите, чтобы вы взяли строковый текст id?

Поскольку вы определили его, вы должны знать, что это такое.

Если у вас есть макет, и вы хотите найти, имеет ли представление определенный идентификатор, вы можете пройти весь макет и проверить с помощью getId(), если идентификатор каждого вида - это идентификатор, который вы ищете.

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

Ответ 4

Если вы правы, то, что вы хотели получить, это слово "radio1" (из самого идентификатора?), поэтому, если в этом случае сначала вам нужно получить свой идентификатор

int intname= buttonname.getId();

то получим его результат

String stringname= get regetResources().getResourceEntryName(intname);

надеялся, что помог