4

如果我有一个定义的 UI 元素,例如

<TextView
    android:id="@+id/output"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"
    android:text="@string/hello"
    android:typeface="monospace" 
    android:textSize="12sp" />

我可以用类似的东西来引用它

TextView output = (TextView) findViewById(R.id.output);

但是,如果 TextView 不存在,那么我什至无法编译代码,因为没有R.id.output生成并且在编译时被捕获。

有没有办法在不通过 引用它的情况下测试元素是否存在R.id...,因为如果不存在则会产生编译时错误?

实际上,我相信我不仅需要测试它是否存在,还需要另一种引用它的方式。

也许像

TextView output = null;
if((output = findViewByName("output")) != null)
{
    // Do something with output
}

(当然,该findViewByName功能不存在。)

谢谢

4

1 回答 1

2

您可以使用Resources 类方法getIdentifier()按名称查找资源,尽管如文档中所述,它比按 id 查找效率低得多。

于 2012-09-03T14:13:34.730 回答