一、setContentView(R.layout.具体布局页面,如activity_main.xml),设置所在activity采用那个布局页面进行布局。
二、解谜:findViewById()其实并不能根据一个ID返还给你一个对的类型,什么意思呢?下面这两行代码都能编译通过并且运行:
ImageView img = findViewById(R.id.img);
Button button= findViewById(R.id.img);
这两行代码在编译后会是这个样子的:
ImageView img = (ImageView)findViewById(R.id.img);
Button button= (Button)findViewById(R.id.img);
也就是说该方法不知道你要什么,只是使用了泛型(T) this进行了强制类型转换,告诉编译器在编译的时候该方法返回的是一个泛型类型,要进行类型转换,明显,强转为Button的时候程序在运行时会崩溃。
总结:其实在原理上findViewById()方法和之前版本是一样的,在编译之后,都需要进行了强转类型,只不过,api 26中使用了泛型,强转操作不用开发人员每次都手动进行,而是放在了编译过程中。
三、button的OnClickListener的三种实现方法
onclick事件的定义方法,分为三种,分别为在xml中进行指定方法;在Actitivy中new出一个OnClickListenner();实现OnClickListener接口三种方式。
代码分别如下:
1. xml指定onclick事件,这种方式比较适用于指定的buttonÿ