【问题标题】:Problem detecting Spinner component检测 Spinner 组件时出现问题
【发布时间】:2025-12-09 16:50:01
【问题描述】:

遍历视图的组件,以下代码可以工作:

if (child.getClass() == EditText.class) {
  ...
} else if (child.getClass() == TextView.class) {
  ...

但这不是:

} else if (child.getClass() == Spinner.class) {
  ...

Spinner 类和其他两个有什么区别?


我的错误......我之前在检查它是否是 ViewGroup 对象,所以它从未达到条件

谢谢

【问题讨论】:

  • 考虑使用 instanceof。它将支持子类。

标签: android class components


【解决方案1】:

我的错误...我之前在检查它是否是 ViewGroup 对象,所以它从未达到条件

【讨论】:

    【解决方案2】:

    你考虑过使用

    if(child instanceof EditText){}
    else if(child instanceof TextView){}
    else if(child instanceof Spinner){}
    

    【讨论】:

      【解决方案3】:
       if(child.getClass() instanceof Spinner.class){
       ...
      

      编辑:

      我找到解释它的 * 问题:

      Any reason to prefer getClass() over instanceof when generating .equals()?

      【讨论】: