day_01 解析简单的程序

  • 就以上一节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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/570571.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

时区与程序设计

时区的定义 我们使用经纬度[1]来标识地球上的任意一个点。 理论时区 不像纬度有赤道作为自然的起点&#xff0c;经度没有自然的起点而使用经过伦敦格林尼治天文台旧址的子午线作为起点。 理论时区的宽度是15&#xff0c;所以一共有 360 / 15 24 个时区&#xff0c;一天有 24 小…

JSP实例-彩色验证码

image.java用于产生彩色验证码&#xff0c;其代码如下&#xff1a; package test; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.image.BufferedImage; import java.io.IOException; import java.io.OutputStream; import java.ut…

P1678 烦恼的高考志愿

题目背景 计算机竞赛小组的神牛V神终于结束了万恶的高考&#xff0c;然而作为班长的他还不能闲下来&#xff0c;班主任老t给了他一个艰巨的任务&#xff1a;帮同学找出最合理的大学填报方案。可是v神太忙了&#xff0c;身后还有一群小姑娘等着和他约会&#xff0c;于是他想到了…

Java代码实现Fibonacci数列

Fibonacci数列 1.定义&#xff1a; 0, 1, 1, 2, 3, 5, 8, 13, 21, . . .; f0 0, f1 1, fn fn−1 fn−2 for n ≥ 2. 2.两种实现算法&#xff1a; 2.1递归&#xff08;recursive&#xff09; T(n)>2n/2证明: T(n)T(n−1)T(n−2)>2T(n−2)>22T(n−4)>...>2n/2T…

套路:想戒手机?试试把屏幕变灰

简评&#xff1a;园长试过了&#xff0c;瞬间不想再看手机&#xff0c;一股浓浓的性冷淡&#xff08;无能&#xff09;风&#xff0c;此时我只想去拥抱真实的世界。 我代表原作者。 我的手机已经变灰了&#xff0c;感觉很不错&#xff0c;不再沉迷。 为了戒掉手机瘾&#xff0c…

判断一个数是否存在于一个非递减的有序数列中 算法(Ordered Search Problem)

1. Description Given a list of nnumbers in non-decreasing order A{a1,a2,⋯,an}such that a1≤a2≤⋯≤anand a number x, the objective is to determine if xis present in the list A2. Algorithm Algorithm 1. Linear Search Algorithm Iterate through nnumbers to …

(4.12)全面解析-SQL事务+隔离级别+阻塞+死锁

30分钟全面解析-SQL事务隔离级别阻塞死锁 转自&#xff1a;https://blog.csdn.net/slowlifes/article/details/52752735 2016年10月07日 23:17:46 阅读数&#xff1a;1097阅读目录 概述&#xff1a;一、事务二、锁三、阻塞四、隔离级别五.死锁以前总是追求新东西&#xff0c;发…

抽屉原理

“抽屉原理”最先是由19世纪的德国数学家迪里赫莱&#xff08;Dirichlet&#xff09;运用于解决数学问题的&#xff0c;所以又称“迪里赫莱原理”&#xff0c;也有称“鸽巢原理”的。这个原理可以简单地叙述为“把10个苹果&#xff0c;任意分放在9个抽屉里&#xff0c;则至少有…

jdbc之连接Oracle的基本步骤

1 // 1.加载驱动程序2 Class.forName("oracle.jdbc.driver.OracleDriver");3 // 2.获取数据库连接4 Connection conn DriverManager.getConnection("jdbc:oracle:thin:localhost:1521:orcl", "j0408", "1");5 // 3.构建SQL语句6 Stri…

[jzoj 5775]【NOIP2008模拟】农夫约的假期 (前缀和+递推)

传送门 Description 在某国有一个叫农夫约的人&#xff0c;他养了很多羊&#xff0c;其中有两头名叫mm和hh&#xff0c;他们的歌声十分好听&#xff0c;被当地人称为“魔音” 农夫约也有自己的假期呀&#xff01;他要去海边度假&#xff0c;然而mm和hh不能离开他。没办法&#…

mac启动mysql,apache,php

在用php编写网站之前&#xff0c;先要启动之前搭建好的环境。 1.启动mysql &#xff08;1&#xff09;在system preference的最底部有mysql控制图标&#xff1a; &#xff08;2&#xff09;点击mysql图标&#xff0c;启动mysql&#xff1a; 2.启动apache&#xff1a; 在term…

如何在命令长度受限的情况下成功get到webshell(函数参数受限突破、mysql的骚操作)...

0x01 问题提出 还记得上篇文章记一次拿webshell踩过的坑(如何用PHP编写一个不包含数字和字母的后门)&#xff0c;我们讲到了一些PHP的一些如何巧妙地绕过数字和字母受限的技巧&#xff0c;今天我要给大家分享的是如何在命令长度受限的情况下成功get到webshell&#xff0c;以及关…

iOS开发造轮子 | 通用占位图

https://www.jianshu.com/p/beca3ac24031 实际运用场景&#xff1a; 没网时的提示view&#xff0c;tableView或collectionView没内容时的展示view&#xff0c;以及其它特殊情况时展示的特定view。如&#xff1a; 常见的几种情况我的目标&#xff1a; 对以上几种情况的展示view做…

java 计算26个字母在一段文本中出现的频率(保留小数点后4位)

public class FrequencyCalculator {public static void main(String[] args){//定义需要计算字母出现频率的文本String text"some off#acebooksea3rl255 yinvestorssoldofftheirstockatthefirs" "tchancetheygotbutceomarkzuckerbergishangingontohissharesfor…

Maven_生产环境下开发对Maven的需求

目前技术开发时存在的问题&#xff1a; 一个项目就是一个工程 如果一个项目非常庞大&#xff0c;就不适合继续使用package来划分模块。最好是每一个模块对应一个工程&#xff0c;利于分工协作。 借助Maven就可以将一个项目拆分多个工程。 项目中需要的jar包必须手动复制粘贴到W…

string赋值-单引号和双引号的区别(php)

在赋予一个string值的时候&#xff0c;可以用单引号或者双引号。 1.单引号和双引号的区别&#xff1a; 单引号&#xff1a;不会翻译变量。 双引号&#xff1a;会翻译变量&#xff0c;会将变量替换为之前赋予变量的值。 例子&#xff1a; &#xff08;1&#xff09;单引号&a…

Web项目开发流程 PC端

Web项目开发流程 PC端 转自 https://www.cnblogs.com/mdengcc/p/6475733.html一直再做前端&#xff0c;突然想到如果有一天领导让自己独立承担一个web 项目的话是否有足够的能力去接这个任务&#xff0c;要学会自己去搭建一些基础的工具信息。所有的这一切在心里都要有个大致的…

Hibernate常用的Java数据类型映射到mysql和Oracle

研究了常用的Java基本数据类型在mysql和oracle数据库的映射类型。这里使用的是包装类型做研究&#xff0c;一般在hibernate声明的时候最好不要用基本类型&#xff0c;因为数据库中的null空数据有可能映射为基本类型的时候会报错&#xff0c;但是映射到包装类型的时候值为null&a…

Spring Cloud 之 Feign 使用HTTP请求远程服务

Feign是从Netflix中分离出来的轻量级项目&#xff0c;能够在类接口上添加注释&#xff0c;成为一个REST API 客户端&#xff0c;Feign默认集成了Ribbon。 Feign中对 Hystrix 有依赖关系。Feign只是一个便利的rest框架&#xff0c;简化调用&#xff0c;最后还是通过ribbon在注册…

UI控件之UISlider

一、创建 UISlider *slider [[UISlider alloc] initWithFrame:CGRectMake(0, 200, self.view.frame.size.width-100, 50)]; 二、设置最大最小值 slider.minimumValue 0; slider.maximumValue 1; 三、改变圆形前面和后面的颜色 slider.minimumTrackTintColor [UIColor orang…