任何视图上的 setText()

setText() on any view

我想将文本设置为常规 View class 如果 View 没有 setText() 方法,如 ImageView 只是为用户抛出一个异常。我已经尝试使用 instanceof,但我不知道有多少视图具有 setText(),而且我无法涵盖自定义视图。

setText 方法在 TextView class 中定义,任何其他具有 setText 方法的 class(如 Button、EditText),他们都知道来自 TextView class 通过继承。

因此,要检查视图是否具有 setText 方法,您只需检查它是否是 TextView class 的引用。

所以你可以这样做:

if (view instanceof TextView)
        {
            ((TextView) view).setText("Type whatever you want to set");
        }
        else
        {
            // throw your exception here
        }