1. 程式人生 > >android開發筆記:MainActivity.java與activity_main.xml

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

https://www.jianshu.com/p/f5e56fb2f215

剛開始開發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
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯絡作者獲得授權並註明出處。