Day2 Android - 系统预设程序码

来记录一下自己学习的历程及遇到的问题,应该有人会觉得是废话啦~,那麽就开始今天的主题,在一开始建完project的时候,应该都会发现到系统已经帮自己建好了MainActivity的java档跟activity_main的xml档,是因为使用方法在一开始就会先载入他的activity,这在创建新的activity时必定会执行(onStart()),先从java档开始提,一开始大概会先看到以下的程序码。

package com.example.myapplication;

import androidx.appcompat.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);
    }
}

虽然系统预设的程序码也不是必要知道的,因为大部分也不会去动到他原来的程序主体,但还是稍微简述一下这部分的内容。

第一行package com.example.myapplication(或许不同),是你package的路径,可从旁边的资料夹中看到。
https://ithelp.ithome.com.tw/upload/images/20210710/20139259B3lYr8Tzc9.png
https://ithelp.ithome.com.tw/upload/images/20210710/20139259KiDkIMMzDU.png

另外,import AppCompatActivity类别以及bundle,都是相当重要的,也可以说应用程序几乎都会使用到。

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

再往下,程序主体MainActivity继承了AppCompactActivity这个类别,这个类别里面包含了非常多必要的方法,包含以下的@Override覆写、oncreate()、setContentView()也都是里面的方法之一。

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}

详情:https://developer.android.com/reference/androidx/appcompat/app/AppCompatActivity
而它透过使用oncreate方法,及导入参数savedInstanceState来取得先前一次保存的bundle状态(也就是最後一次关闭时的状态)。

super(可使用父层的方法),也就是覆写父类Appcompactactivity的oncreate方法来执行,後再执行自己的oncreate方法(做自己想做的动作),setcontentView 则是引用对应名称的layout xml档案(配置、摆放设计显示在萤幕上)。

再来看到activity_main.xml的档案(列表res/layout/activity_main.xml)。
https://ithelp.ithome.com.tw/upload/images/20210710/20139259dxHeN1Yw2E.png

叫出档案後,首先先点进靠近右上角的Design里面,这边就是可以用来设计介面的地方,你可以看到palette那一块包含了非常多的元件和要的排版模式(layout),我这边的预设版面是Constraintlylayout(最外面一定会包一层layout,不然不会显示东西)
https://ithelp.ithome.com.tw/upload/images/20210710/201392596onkxRc1hU.png

常见的版面还包含:RelativeLayout、LinearLayout、TableLayout、FrameLayout等。

而我在後面会举自己比较常用的ConstraintlyLayout、RelativeLayout和LinearLayout来介绍,另外也会提我所用到的元件,那麽明天先来简述一下旁边资料夹分别的功用,再後几天就来做Layout版面的介绍及功能上的设计。

而另外两种当然也是有它的特性和功用,如果有需要了解的话可以透过以下的资料深入理解。


<<:  [Day02]稽核师的挑战关卡

>>:  Day-02 机器学习的介绍

Week40 - 各种安全性演算法的应用 - 窜改、抵赖实作 [高智能方程序系列]

本文章同时发布於: Medium iT 邦帮忙 大家好,继上次Week39 - 各种安全性演算法的应...

[D21] 物件侦测(2)

经过上一篇物件侦测(1)的介绍,我们终於可以正式进入更完整的影像侦测小世界了! 之前说过物件侦测有的...

Day10输入input(HTML)

输入型态 首先介绍标签里面的属性 name: 栏位名称 用来指定送出去的该笔资料要用什麽名称给服务器...

SAML Assertion and OIDC Claim

实体、身份和关联属性 所谓的实体(entity)是指任何具有身份(identity)的人或东西。例...

帮 Line Bot 加上身份验证(1)

昨天我们让 Line Bot 可以成功回应使用者验证码了,但是这样只要任何人加入 Line Bot ...