JAVA/ android開發筆記:MainActivity.java與activity_main.xml

前言

剛開始開發android的時候,新建一個activity總是會新建兩個文件,我們已默認命名MainActivity.java與activity_main.xml兩個文件來給大家介紹。

activity_main.xml

layout就是佈局,所以activity_main.xml其實就是一個佈局文件。何爲佈局文件:我們拖的各種各樣的控件在上面,系統就會自動幫我們生成xml代碼。那能怎麼用,拖在上面又不能點,也只能看?如何建立聯繫?這時候就是MainActivity.java要乾的事情了。

MainActivity.java

在此,我們先了解一下MainActivity.java的代碼,複習複習java的基礎知識:

package com.example.liwenban.textdemo;

//引用包,這就是引用android SDK的過程,利用開發者寫好的方法我們直接引用來提高效率
//(針對文章:android開發筆記:瞭解android。做的說明,方便看過該文章的朋友理解)
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_main);

   }
}

首先我們注意到一個點,MainActivity類名後面跟着一個繼承:extends
如果java基礎知識不過關的解釋一下繼承是什麼吧:

繼承:
繼承簡而言之就是平常我們所說的繼承財產是一個道理,MainActiviy這個類剛剛創建,肯定是什麼東西都沒有的。正式因爲繼承,繼承了AppCompatActivity類。我們就可以通過“繼承”,得到了他的所有:“財產”,也就是他寫好的方法。當然這樣的說法並不準確,還有private,public各種情況考慮才能判斷能否被繼承,畢竟不是你想全部繼承他的財產他都可以給你。

很形象的比喻,也就明白了下面一個,onCreate怎麼來的:他其實就是AppCompatActivity類裏面的一個方法。那麼這個方法的作用是什麼呢?onCreate方法主要是初次啓動(指使用這個類)首先加載的方法。看清楚一個關鍵詞:首先。也就是這個方法具有以下特點:就運行一次,而且是最先運行。
做個對比,其實就是寫java練習代碼裏面的main方法,首次加載進入的入口就在這裏。其實可以想到,開發這個SDK的人,肯定就是封裝了main方法,被他封裝了成在android SDK上叫做onCreate。
@Override中文意思就是重寫,在java裏面我們繼承來的,我們要使用就要重寫,也就是重寫嘛。覆蓋掉原來的oncreate方法,我們幫他重寫一個oncreate,按照我的想法去執行這個方法。

//意思着我們要先調用一個對象的父對象上的函數,也就是AppCompatActivity
super.onCreate(savedInstanceState);

現在纔講到正軌:

MainActivity.java和activity_main.xml如何建立聯繫:

setContentView(R.layout.activity_main);

方法名setContentView的意思看的出來,啓動內容視圖“用”佈局文件activity_main.xml。所以,我們可以理解一個原理:
android手機啓動一個應用?是先打開佈局文件,然後在執行裏面的java程序?
答案是:android手機(linux系統)其實都是隻會運行java程序,java這段代碼告訴我:你要啓動一個內容視圖爲activity_main.xml文件,這時候就會去找activity_main.xml文件,然後轉換成各種各樣的控件就是android系統乾的事,我們不管,這時候程序上就顯示activity_main.xml寫好的控件了。這時候我們發現,他們其實就是這樣建立聯繫的。。。

結束



作者:helloMiao
鏈接:https://www.jianshu.com/p/f5e56fb2f215
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯繫作者獲得授權並註明出處。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章