mainActivity.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写好的控件了。这时候我们发现,他们其实就是这样建立联系的。。。

结束

至此,就说到这里了,如果有什么问题或错误,欢迎评论里面留言,如果喜欢文章,给一个喜欢的小心心~

  • 8
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是 MainActivity.java 的代码: ``` import android.os.Bundle; import android.widget.RadioGroup; import android.widget.Toast; import androidx.appcompat.app.AppCompatActivity; public class MainActivity extends AppCompatActivity { private RadioGroup mRadioGroup; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mRadioGroup = findViewById(R.id.radio_group_gender); mRadioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup group, int checkedId) { switch (checkedId) { case R.id.radio_button_male: Toast.makeText(MainActivity.this, "您选择了男性", Toast.LENGTH_SHORT).show(); break; case R.id.radio_button_female: Toast.makeText(MainActivity.this, "您选择了女性", Toast.LENGTH_SHORT).show(); break; } } }); } } ``` 以下是 activity_main.xml 的代码: ``` <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <RadioGroup android:id="@+id/radio_group_gender" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <RadioButton android:id="@+id/radio_button_male" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="男性" /> <RadioButton android:id="@+id/radio_button_female" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="女性" /> </RadioGroup> </LinearLayout> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值