Android生成界面的两种方法:setContentView和inflate的区别
程序员文章站
2022-06-09 13:31:48
...
最近正在学习Android的开发,开发环境Android Studio 4.0正式版。
android-studio4.0-201.6565218-windows.zip:
首先我们接触的就是界面的创建,第一种方式自然是直接创建Activity,然后Android Studio自动给你创建了关联的界面XML文件,一般名称为activity_main.xml,Java文件为MainActivity.java;
在MainActivity.java里的onCreate方法中就对界面进行了设置:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
那么上面的就是最基础的方式了,也是最常见的方式了。而下面这种也是最常见的,使用单独的Java文件和xml文件,再将两个文件用一句话关联就行了,一般来说这种方式更加灵活,对比到Qt里面的话,其实这里比Qt的界面设计器似乎更加方便,不过Android里还需要重新提取各种界面的组件,这一点相比于Qt来说,真的很麻烦。
好了,第二种方式:
新建一个Fragment,或者直接新建Java类,继承相关界面类即可,然后新建一个xml文件,名字自己定吧,接着使用LayoutInflater类将xml和Java文件关联就行了。关联之后,你就可以使用findViewByID去获取界面上的控件了。所以说比Qt麻烦嘛,Qt里面直接用ui.xxx就可以了。
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.compass, container, false);
mView = (CompassView) v.findViewById(R.id.compass_view);
return v;
}