如何从资源 ID 获取资源名称


在我的布局中,我定义了这样的东西。

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

假设活动中的某个函数返回我这个 id (RadiButton 的 id)。现在我要从这个 id 中得到这个文本 收音机1。 简而言之,我想检索文本 收音机1写在 android:id="@+id/radio1"

谁能告诉我这怎么可能?

96373 次浏览

你的意思是你想获取 id 的字符串文本?

既然你已经定义了它,你应该知道它是什么。

如果您有一个布局,并且您希望查找一个 View 是否有一个特定的 id,那么您可以遍历整个布局并使用 getId ()检查每个 View 的 id 是否是您正在查找的 id。.

希望这有所帮助(如果我理解正确你的问题. . :)

在你的活动中,试试这些:

  1. 得到像 radio1这样的字符串:

    getResources().getResourceEntryName(int resid);
    
  2. to get string like com.sample.app:id/radio1:

    getResources().getResourceName(int resid);
    

In Kotlin Now :

val name = v.context.resources.getResourceEntryName(v.id)

你有 Id (‘ long’类型)从那个 id 你想访问单选按钮 身份证(名称)收音机1。 你用这个

getResources().getResourceEntryName(id);

在使用上面的命令时,你可以得到单选按钮的名称,也就是 Radio1.here 参数 id 是您拥有的(长类型)。 尝试这将帮助你100% 。

如果我是对的,那么您想要检索的是单词“ radi1”(来自 id 本身?)如果是这样的话,那么首先你需要得到它的 id。

int intname= buttonname.getId();

然后得到结果

String stringname= getResources().getResourceEntryName(intname);

希望我能帮上忙

科特林:

val name = v.context.resources.getResourceEntryName(v.id)