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
做個對比,其實就是寫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
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯絡作者獲得授權並註明出處。