如何从字符串而不是R.id中查找View

时间:2011-12-08 23:00:28

标签: android resources

我们假设我在我的应用程序中使用res布局

    <TextView android:id="@+id/titleText" android:layout_width="fill_parent"
        android:layout_height="wrap_content" android:text="@string/app_name"
        android:textColor="#ffffffb0" android:padding="5px" />

在我的活动中,我使用此命令获取TextView

 TextView tv = (TextView)findViewById(R.id.titleText);

但我正在寻找另一种方法

 TextView tv = (TextView)findViewByString("R.id."+"titleText");

因为我需要枚举那些ID。你们中的任何一个人都可以给出一个提示或线索,我该如何解决这个问题?感谢

2 个答案:

答案 0 :(得分:49)

您可以使用以下内容:

Resources res = getResources();
int id = res.getIdentifier("titleText", "id", getContext().getPackageName());

然后使用id。

答案 1 :(得分:0)

在Kotlin中,您可以使用此行获取ID。

val id: Int = resources.getIdentifier("titleText", "id", packageName)

返回的值可以用作函数findViewById<TextView>(id)的参数。

注意:如果在活动之外调用if,请使用上下文。

val id: Int = context.resources.getIdentifier("titleText", "id", context.packageName)