Android测试是否存在UI元素/视图

时间:2012-05-02 21:49:31

标签: android android-widget

如果我有一个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功能不存在。)

由于

1 个答案:

答案 0 :(得分:2)

您可以使用Resources class方法getIdentifier()按名称查找资源,但正如文档中所述,它比通过ID查找效率低得多。