1、Activity
-MainActivity
MainActivity本质上还是一个Activity类
public class MainActivity extends AppCompatActivity {
//Activity:可视化界面
//public class XxxActivity extends Activity (定义一个普通的类,再继承一个窗口的基类)
//public class XxxFrame extendsJFrame (java继承JFrame就会有一个窗口的特性)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); //调用父类的onCreate构造函数
//设置内容视图
//R:为每个资源文件按类别分配一个索引
//使程序员可以通过R.类别名.资源名 去操作对应资源
setContentView(R.layout.activity_main);
}
}
super就是调用父类的属性或方法,反之this就是调用本类的属性和方法。
savedInstanceState是保存当前Activity的状态信息,如果一个非running的Activity因为资源紧张而被系统销毁,当再次启动这个Activity时,可以通过这个保存下来的状态实例,即通过saveInstanceState获取之前的信息,然后使用这些信息,让用户感觉和之前的界面一模一样,提升用户体验。
在实际应用中,当一个Activity结束前,如需保存状态,就在onSaveInstanceState中,将状态数据以key-value的形式放入到saveInstanceState中。这样,当一个Activity被创建时,就能从onCreate的参数saveInstanceState中或得状态数据。
状态这个参数在实现应用中有很大的用途,比如:一个游戏在退出前,保存一下当前运行游戏的状态,当下次开启时能接着上次的继续玩。再比如,电子书程序,当一本小说被阅读到第199页后退出了(不管是内存不足还是用户自动关闭程序),当下次打开时,读者可能已忘记了上次已阅读到第几页了,但是,读者想接着上次的读下去。如果采用saveInstallState参数,就很容易解决上述问题。
2、布局文件
Code模式:通过一个个标签并设置其各个属性来编写布局文件。
Split模式:预览布局文件的效果。
Design模式:拖拽控件进行布局。
3、清单文件
若要在清单文件中配置Activity,在其中加入activity标签就好。
<activity
android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
一个应用程序可以有许多个activity(页面),并且它们是同级的,那么在启动APP时,页面应该如何显示?
intent-filter就是解决这个问题的。
intent-filter意图过滤器
Intent Filter就是用来注册 Activity 、Service 、 Broadcast、Receiver(四大组件) 具有能在某种数据上执行一个动作的能力。使用 Intent Filter ,应用程序组件告诉 Android ,它们能为其它程序的组件的动作请求提供服务,包括同一个程序的组
件、本地的或第三方的应用程序。
android.intent.action.MAIN 表明了一个应用启动时首先启动这个Activity的动作。
android.intent.category.LAUNCHER 当activity中出现这个东西的时候,说明,这个页面就要通过APP图标来开启。
总结
1、创建一个活动
2、创建布局文件
3、在活动中声明引用哪个布局文件
4、在清单文件AndroidManifest中注册活动