什么是Activity?
Activity是一个Android应用程序组件,它提供了一个屏幕,用户可以通过该屏幕进行交互以执行某些操作。
Android应用程序通常由多个彼此松散关联的Activity组成,一般情况下会通过AndroidManifest.xml来指定某个Activity为主Activity(通常命名为MainActivity),即一切Activity的开始,类似C语言中的main函数。
创建MainActivity
在一个空项目中,第一步应该先创建一个MainActivity,并根据需要重写必要的函数。Activity继承于AppCompatActivity,主要的函数如下:
void onCreate(Bundle savedInstanceState); //执行所有fragment的初始化操作
void onDestroy(); //销毁所有的fragment
void onSaveInstanceState(Bundle outState); //保存所有fragment的状态
void onStart(); //将onStart()发送到所有fragment
void onStop(); //将onStop()发送到所有fragment
其他具体接口可以参考:developer.android
创建布局(layout)
需要创建一个layout文件来定义MainActivity的界面,文件命名为main_activity.xml。重写onCreate函数时需要通过setContentView将MainActivity与main_activity.xml连接起来。
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);
}
配置AndroidManifest.xml
创建好MainActivity之后,需要在AndroidManifest.xml添加声明来设置MainActivity为主Activity。
<application>
<activity
android:name=".MainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
问题记录
1. Error runing ‘app’:Default Activity not fund.
原因:Android Studio在你创建工程时,不管创建的是不是空工程,默认设置launch是需要一个Default Activity的。
解决方法:
1.首先检查AndroidManifest.xml中的 标签内容是否设置正确,因为正常情况下如果成功设置了MainActivity是不会出现这个问题的。本人出现这个问题的原因就是android.intent.action.MAIN写成了全小写。
2.如果配置确认都没问题,可以选择Android studio ——> File ——> Invalidate Caches/restart… ——> Invalidate and Restart。
3.如果以上都不行的话, 选择“app”下拉框的“Edit Configurations”, launch选择nothing或者MainActivity。