- 就以上一节FirstProgram为例,请看下图:
01、AndroidManifest.xml是整个项目的配置文件,非常重要,每个应用程序里必须存在的xml文件,且名字不可以改变,四大组件的使用必须在此处声明注册才可使用,而且还可以在这里声明权限,例如打电话的权限等等。
02、MainActivity是一个活动,想使用须得在AndroidManifest.xml里注册才可以,如上图里的代码,它跟JAVA里的类使用方法大同小异,使用前需要继承Activity(AppCompatActivity是它的子类),它俩有什么区别呢?话不多说,上图来解释:
(1)AppCompatActivity
(2)Activity
区别是不是显而易见?你们可能说没太大区别嘛,一开始我也不注意这个,后来学到菜单那里,发现了不对劲,如果是第一种情况,菜单选项就会出现在标题的旁边有竖着的三个点,如果继承了Activity,你得点击手机上的返回键附近的菜单选项才会出现菜单。这里不多说了,等着到菜单menu那里才具体讲解。
02、activity_main.xml在layout文件夹下面,它里面包含着布局,就是显示出Hello Wrold的布局。
我认为初学者最应该知道的先是这些,等以后用到其他的时候在一一讲解。
- 解析这三个里面的代码。
MainActivity
1 public class MainActivity extends AppCompatActivity { 2 3 @Override 4 protected void onCreate(Bundle savedInstanceState) { 5 super.onCreate(savedInstanceState); 6 setContentView(R.layout.activity_main); 7 } 8 }
MainActivity要继承AppCompatActivity(活动),然后必须重写onCreate方法,onCreate方法里面要用setContentView()引入布局,R.layout.activity_main中,R代表当前所在的包,layout代表layout文件夹,activity_main代表layout文件夹下的布局
activity_main.xml
1 <?xml version="1.0" encoding="utf-8"?> 2 <RelativeLayout 3 android:id="@+id/activity_main" 4 android:layout_width="match_parent" 5 android:layout_height="match_parent" 6 xmlns:android="http://schemas.android.com/apk/res/android" 7 > 8 9 <TextView 10 android:layout_width="wrap_content" 11 android:layout_height="wrap_content" 12 android:text="Hello World!"/> 13 </RelativeLayout>
RelativeLayout是一个相对布局,暂且不管它,真正显示Hello World的是布局内的TextView,这个相当于JAVA里swing里的JLabel,添加后会显示出一行字,是通过android:text="Hello World!" 赋值的。
AndroidManifest.xml
1 <?xml version="1.0" encoding="utf-8"?> 2 <manifest xmlns:android="http://schemas.android.com/apk/res/android" 3 package="com.zywwgx.firstprogram"> 4 5 <application 6 android:allowBackup="true" 7 android:icon="@mipmap/ic_launcher" 8 android:label="@string/app_name" 9 android:supportsRtl="true" 10 android:theme="@style/AppTheme"> 11 <activity android:name=".MainActivity"> 12 <intent-filter> 13 <action android:name="android.intent.action.MAIN"/> 14 15 <category android:name="android.intent.category.LAUNCHER"/> 16 </intent-filter> 17 </activity> 18 </application> 19 20 </manifest>
这个便是大名鼎鼎的注册活动的地方,
11 <activity android:name=".MainActivity"> 12 <intent-filter> 13 <action android:name="android.intent.action.MAIN"/> 14 15 <category android:name="android.intent.category.LAUNCHER"/> 16 </intent-filter> 17 </activity>
这是注册的MainActivity。
- 这次咱们创建一个完全空的程序,从头开始自己动手写。
(1)跟上面的一样先新建一个工程,起名为SecondProgram
(2)不同的是,这次我们选择第一个,Add No Activity(没有活动,上次那个是Empty Activity 是自动帮你添加了一个活动),为了加深理解,这次我们自己动手。
(3)创建完后,有没有发现都是空的?我故意点开了注册活动的xml,里面也没有注册过活动。
(4)那我们先创建活动,右击(如图),点击new,再点击Java Class ,创建出一个新的类,名字可以随便起。
(5)继承AppCompatActivity
(6)重写onCreate方法
(7)最后一步,用setContentView();方法引入布局。有报错先不用管,因为还没有填写R.layout.****。
(8)在此之前,要引入哪个布局呢?这就应该在res下创建一个layout文件夹。
(9)在layout文件夹下创建activity_main。
(10)按照个人习惯起名字
(11)这是预览效果图,点击Text,切换到代码编辑模式
(12)在LinearLayout线性布局里添加TextView,text输出你想输出的文字,width和height代表宽高,这里选择wrap_content,意思是随着字的多少大小决定宽高。
(13)哇,终于完成了布局,那么现在可以在活动里添加布局了。
(14)最后一步,是最重要的一步,打开AndroidManifest.xml,注册活动,先记住这么写,以后在介绍含义。
(end)好了,可以运行了。
是不是有点小激动?别急更好玩的还在后面。
自学的时间不长,专业术语也不专业,可能会有少许错误,认真接受批评(*^o^*)