在自学android,在训练使用ProgressBar时,我总是无法通过ProgressBar的id得到ProgressBar。老是报"Type mismatch: cannot convert from View to ProgressBar"的错。检查代码,没有发现错误。弄了两个晚上,都没检查出来。
上网搜了下,发现问这个问题的很少。有,也没有详细探讨问题根源的。
我这里就详细探讨下这个问题的产生。
在学corejava时,我从没碰到过这种问题。是在android中才碰到的。我建的类名是ProgressBar,然后要得到控件ProgressBar。大家应该看到错误了把。ProgressBar是android里已有的类,我建的activity也是类。类名冲突了。IDE工具并不会自动识别是要得到我自己建的activity,还是要得到一个控件。所以报错。
在corejava中,没有谁会建一个"String"的类,因为java里已有了这个类。可android中,我们以为建的是activity,可activity仍然是类,是特殊的继承了activity的类,它仍然要
遵守类名不能重复的规则。
这就是错误的根源。对activity了解的不透彻,导致出错了!