问题描述
- 菜鸟求解问题,这里为什要加括号??
- listView=(ListView)this.findViewById(R.id.lisView);
就是为什么要加一个(ListView)??
在前面定义过一个私有方法
private ListView listView;
解决方案
这个是强转的,R.id.# 的返回值都是int类型的,需要强制转换成listview
解决方案二:
不要给片段,起码发个上下衔接的代码块。你这句private ListView listView;难道不是声明的ListView对象?哪有个私有方法?
解决方案四:
个人理解,首先实现一个接口或者一个父类的有很多,一个参数的传递,我采用接口或者父类,我只能调用接口中的方法或者调用父类里面的共有方法,我不能调用具体派生类正方法,那么如果我需要调用某个派生类的方法,我应该怎么办呢?
我需要将接口或者父类转为具体的派生类,这样就可以调用派生类中具体的方法或者字段,但是这里需要注意的时候,强制转换可能为空哟。
例如:人类和鸟类都继承了动物类,我想调用人类中的useTool方法,如果你将一个人类转为一个鸟类,这个肯定是不行的。所以返回一个Null。所以小心空指针异常。
解决方案五:
代码从右往左看,首先穿入一个ID,然后通过ID找控件,最后将控件强转为需要的类型。
强转的原理相当于将一个基类(人)转为一个派生类(男生或女人)
解决方案六:
findviewbyid 返回的是View
解决方案七:
this.findViewById(R.id.lisView) 这个返回的是View,不是具体的类型,之后强制类型转换到实际的类型
时间: 2024-08-02 19:19:48