day_01 解析简单的程序

  • 就以上一节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^*)


 

posted @ 2018-08-06 16:31  一炜以航  阅读(122)  评论(0)    收藏  举报