Ответ 1
В своей деятельности попробуйте следующее:
-
чтобы получить строку типа
radio1
:getResources().getResourceEntryName(int resid);
-
чтобы получить строку типа
com.sample.app:id/radio1
:getResources().getResourceName(int resid);
В моем макете я определил что-то вроде этого.
<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"
Может кто-нибудь сказать мне, как это возможно?
В своей деятельности попробуйте следующее:
чтобы получить строку типа radio1
:
getResources().getResourceEntryName(int resid);
чтобы получить строку типа com.sample.app:id/radio1
:
getResources().getResourceName(int resid);
У вас есть id ('long' type) из этого идентификатора, к которому вы хотите получить доступ к кнопке id (имя), которая является радио1. Вы используете это
getResources().getResourceEntryName(id);
при использовании выше вы можете получить имя переключателя, то есть радио1. здесь параметр id, который у вас есть (длинный тип). Попробуйте это, это поможет вам на 100%.
Вы хотите, чтобы вы взяли строковый текст id?
Поскольку вы определили его, вы должны знать, что это такое.
Если у вас есть макет, и вы хотите найти, имеет ли представление определенный идентификатор, вы можете пройти весь макет и проверить с помощью getId(), если идентификатор каждого вида - это идентификатор, который вы ищете.
Надеюсь, что это поможет (если я понял правильный вопрос...:))
Если вы правы, то, что вы хотели получить, это слово "radio1" (из самого идентификатора?), поэтому, если в этом случае сначала вам нужно получить свой идентификатор
int intname= buttonname.getId();
то получим его результат
String stringname= get regetResources().getResourceEntryName(intname);
надеялся, что помог