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

135


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

<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"

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

Это длинная история ... мне нужно заполнить данные в большом количестве editText из некоторых данных, полученных с сервера. Поэтому вместо того, чтобы вручную устанавливать данные для всех текстовых полей, я пишу метод, который мог бы работать для меня ... для этого мне нужно это. Code_Life

Ваш Ответ

5   ответов
0

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

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

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

Error: User Rate Limit Exceeded Code_Life
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceededradio1Error: User Rate Limit Exceededandroid:id="@+id/radio1" Code_Life
Error: User Rate Limit Exceeded Code_Life
Error: User Rate Limit Exceeded
8

У тебя естьid('long' type) с этого идентификатора вы хотите получить доступ к переключателюid(name) то естьradio1. You use this

getResources().getResourceEntryName(id);

при использовании выше вы можете получить название радио кнопки, т.е. радио1. Вотparameter id is which you have(long type). Try this it will helps you 100%.

Error: User Rate Limit Exceeded
1

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

int intname= buttonname.getId();

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

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

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

307

to get string like radio1:

getResources().getResourceEntryName(int resid);

to get string like com.sample.app:id/radio1:

getResources().getResourceName(int resid);

В Котлине сейчас:

val name = v.context.resources.getResourceEntryName(v.id)
Error: User Rate Limit Exceeded
Error: User Rate Limit ExceededgetResourceEntryName:Error: User Rate Limit ExceededgetResourceName:Error: User Rate Limit Exceededpackage:typeError: User Rate Limit ExceededgetResourceName
Error: User Rate Limit ExceededgetResourceEntryName(int resid)Error: User Rate Limit ExceededgetResourceName(int resid)?
Error: User Rate Limit Exceeded
Error: User Rate Limit ExceededminifyEnabled trueError: User Rate Limit ExceededgetResources().getIdentifier(...
2

Котлин:

val name = v.context.resources.getResourceEntryName(v.id)
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded

Похожие вопросы