• 就以上一节FirstProgram为例,请看下图:

01、AndroidManifest.xml是整个项目的配置文件,非常重要,每个应用程序里必须存在的xml文件,且名字不可以改变,四大组件的使用必须在此处声明注册才可使用,而且还可以在这里声明权限,例如打电话的权限等等。

02、MainActivity是一个活动,想使用须得在AndroidManifest.xml里注册才可以,如上图里的代码,它跟JAVA里的类使用方法大同小异,使用前需要继承Activity(AppCompatActivity是它的子类),它俩有什么区别呢?话不多说,上图来解释:

(1)AppCompatActivity

(2)Activity

区别是不是显而易见?你们可能说没太大区别嘛,一开始我也不注意这个,后来学到菜单那里,发现了不对劲,如果是第一种情况,菜单选项就会出现在标题的旁边有竖着的三个点,如果继承了Activity,你得点击手机上的返回键附近的菜单选项才会出现菜单。这里不多说了,等着到菜单menu那里才具体讲解。

02、activity_main.xml在layout文件夹下面,它里面包含着布局,就是显示出Hello Wrold的布局。

我认为初学者最应该知道的先是这些,等以后用到其他的时候在一一讲解。

  • 解析这三个里面的代码。

  MainActivity

    

1 public class MainActivity extends AppCompatActivity {
2
3     @Override
4     protected void onCreate(Bundle savedInstanceState) {
5         super.onCreate(savedInstanceState);
6         setContentView(R.layout.activity_main);
7     }
8 }

 MainActivity要继承AppCompatActivity(活动),然后必须重写onCreate方法,onCreate方法里面要用setContentView()引入布局,R.layout.activity_main中,R代表当前所在的包,layout代表layout文件夹,activity_main代表layout文件夹下的布局

  activity_main.xml

  

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <RelativeLayout
 3     android:id="@+id/activity_main"
 4     android:layout_width="match_parent"
 5     android:layout_height="match_parent"
 6     xmlns:android="http://schemas.android.com/apk/res/android"
 7    >
 8
 9     <TextView
10         android:layout_width="wrap_content"
11         android:layout_height="wrap_content"
12         android:text="Hello World!"/>
13 </RelativeLayout>

  RelativeLayout是一个相对布局,暂且不管它,真正显示Hello World的是布局内的TextView,这个相当于JAVA里swing里的JLabel,添加后会显示出一行字,是通过android:text="Hello World!" 赋值的。

  AndroidManifest.xml

  

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
 3           package="com.zywwgx.firstprogram">
 4
 5     <application
 6         android:allowBackup="true"
 7         android:icon="@mipmap/ic_launcher"
 8         android:label="@string/app_name"
 9         android:supportsRtl="true"
10         android:theme="@style/AppTheme">
11         <activity android:name=".MainActivity">
12             <intent-filter>
13                 <action android:name="android.intent.action.MAIN"/>
14
15                 <category android:name="android.intent.category.LAUNCHER"/>
16             </intent-filter>
17         </activity>
18     </application>
19
20 </manifest>

这个便是大名鼎鼎的注册活动的地方,

11         <activity android:name=".MainActivity">
12             <intent-filter>
13                 <action android:name="android.intent.action.MAIN"/>
14
15                 <category android:name="android.intent.category.LAUNCHER"/>
16 </intent-filter> 17 </activity>

  这是注册的MainActivity。

  • 这次咱们创建一个完全空的程序,从头开始自己动手写。
  (1)跟上面的一样先新建一个工程,起名为SecondProgram

  (2)不同的是,这次我们选择第一个,Add No Activity(没有活动,上次那个是Empty Activity 是自动帮你添加了一个活动),为了加深理解,这次我们自己动手。

  (3)创建完后,有没有发现都是空的?我故意点开了注册活动的xml,里面也没有注册过活动。

  (4)那我们先创建活动,右击(如图),点击new,再点击Java Class ,创建出一个新的类,名字可以随便起。

  

  

  (5)继承AppCompatActivity

  

  (6)重写onCreate方法

   (7)最后一步,用setContentView();方法引入布局。有报错先不用管,因为还没有填写R.layout.****。

  

  (8)在此之前,要引入哪个布局呢?这就应该在res下创建一个layout文件夹。

  

  (9)在layout文件夹下创建activity_main。

  

  (10)按照个人习惯起名字

  
  (11)这是预览效果图,点击Text,切换到代码编辑模式

  

  

  (12)在LinearLayout线性布局里添加TextView,text输出你想输出的文字,width和height代表宽高,这里选择wrap_content,意思是随着字的多少大小决定宽高。

  

  (13)哇,终于完成了布局,那么现在可以在活动里添加布局了。    

  (14)最后一步,是最重要的一步,打开AndroidManifest.xml,注册活动,先记住这么写,以后在介绍含义。    

  (end)好了,可以运行了。

  

  是不是有点小激动?别急更好玩的还在后面。  

  自学的时间不长,专业术语也不专业,可能会有少许错误,认真接受批评(*^o^*)

转载于:https://www.cnblogs.com/ywyh2018/p/9430992.html

day_01 解析简单的程序相关推荐

  1. java 验证码图片识别_JavaSE图像验证码简单识别程序详解

    本文为大家分享了JavaSE图像验证码简单识别程序,供大家参考,具体内容如下 首先你应该对图片进行样本采集,然后将样本进行灰度处理,也就是变成黑白两色. 然后你就可以使用该类,对目标文件进行分析.具体 ...

  2. 基于半同步/半反应堆线程池实现的HTTP解析服务端程序

    简介: 半同步/半反应堆线程池是通过一个线程往工作队列添加任务T,然后工作线程竞争工作队列获得任务T.HTTP请求解析服务端程序:逐行解析客户端发送来的HTTP请求然后作出HTTP回答.采用线程池就是 ...

  3. 【微信小程序控制硬件 第12篇-项目篇】微信小程序蓝牙控制硬件应如何开始动手?为您全面解析微信小程序蓝牙API的使用;(附带demo)

    [微信小程序控制硬件第1篇 ] 全网首发,借助 emq 消息服务器带你如何搭建微信小程序的mqtt服务器,轻松控制智能硬件! [微信小程序控制硬件第2篇 ] 开始微信小程序之旅,导入小程序Mqtt客户 ...

  4. 【Windows 逆向】CheatEngine 工具 ( 汉化版 CE 工具推荐 | 编写简单 C++ 程序 | C++ 程序执行分析 | 使用 CE 修改上述 C++ 程序 )

    文章目录 一.汉化版 CE 工具推荐 二.编写简单 C++ 程序 三.C++ 程序执行分析 四.使用 CE 修改上述 C++ 程序 一.汉化版 CE 工具推荐 推荐一个汉化版的 CE 工具 : htt ...

  5. 用C语言编写一个Linux下的简单shell程序

    这是一个简单的C程序,展示了如何进行系统调用执行logout cd ls pwd pid rm mkdir mv cp等命令,这是一个简单的命令解释程序shell,其源代码如下: #include & ...

  6. 初次使用Windbg调试简单C++程序

    写个简单C++程序:运行如下: #include "stdafx.h" #include <iostream> using namespace std;class St ...

  7. cuda 编 程(六)简单CUDA程序的基本框架

    简单CUDA程序的基本框架 包含头文件 const 或宏定义 C++ 函数和CUDA 内核的声明 主函数 () { 分配主机和设备内存 初始化主机内存中的数据 将数据从主机传输到设备 启动(调用)内核 ...

  8. bbs mysql_简单BBS程序(需MySQL支持)

    简单BBS程序(需MySQL支持)-------------------------------------------------------------------------------- Th ...

  9. python的简单程序代码_小白学编程?从一个简单的程序开始学习Python编程

    笔者思虑再三还是决定选择图文(因为百家的视频发布画质真不怎么样[囧]). 笔者学习编程的时间也挺长的,因为业余,因为时间不多,各种原因,自学编程的路特别难走.然后笔者发现,自己能为小白贡献一些力量,然 ...

最新文章

  1. 用AI加速物联网落地,安富利的客户洞察和解决之道
  2. 模型转换状态已支持Webhook!
  3. source insight快捷键及使用技巧
  4. tp3.2.3运用phpexcel将excel文件导入mysql数据库
  5. 精选Spring Boot三十五道必知必会知识点!
  6. 那些人工智能未来式,没看过你就 OUT 了
  7. 阿里云配置负载均衡实例
  8. 解决IIS SMTP无法发信的故障
  9. 织梦生成栏目找不到模板怎么知道是哪个栏目和模板
  10. Base64加解密的实现方式
  11. linux安全基线检查,CentOS Linux 7安全基线检查
  12. linux 做磁盘配额
  13. Linux字符模式下如何设置/删除环境变量
  14. BZOJ 1857: [Scoi2010]传送带
  15. VLC框架总结(一)VLC源码及各modules功能介绍
  16. 群体智能优化算法之蝙蝠算法(Bat Algorithm,BA)
  17. 《蜗居》:海外解读中国新样本
  18. u盘怎么装服务器系统教程,u盘装服务器系统教程
  19. 【Android】获取当前的安卓版本号的代码
  20. 怎么去掉win7开始菜单中的睡眠和休眠选项

热门文章

  1. 鸿蒙和宙斯谁厉害,漫威宇宙宙斯vs奥丁,到底谁更强
  2. html如何做卷展菜单,3DMax“对象属性”卷展栏如何操作?有啥秘诀呢?
  3. java quartz spring_JavaLib-quartz | 基于Spring Boot Quartz开发的定时任务
  4. js在wap端获取定位_iPhone 定位服务,没用的都关掉
  5. figtree如何编辑进化树_iTOL快速绘制颜值最高的进化树
  6. linux shell 变量减法_Linux Shell (3) - 变量运算
  7. 单片机按键控制数码管c语言程序,基于单片机的按键控制LED数码管共阴极动态显示电路设计报告(毕业论文).doc...
  8. java8 stream 做累加_《Java 8 in Action》Chapter 1:为什么要关心Java 8
  9. mysql null 0 空,MySQL的空值和NULL区别
  10. acer软件保护卡清除工具clear_如何清除 APT 缓存来回收宝贵的磁盘空间 | Linux 中国...