java写一个android程序_【Android开发笔记】3.编写第一个Android程序

2023-11-15

前言

上一节我们通过一个Demo熟悉了Eclipse的基本使用、如何在模拟器和手机中运行以及如何打包成APK,但没具体编写代码,相信很多同学已经按耐不住了吧,这一节我们会动手编写代码来熟悉Android SDK的情况和JAVA的一些特性。

声明

本系列文章不是教程,仅为笔记,如有不当之处请指正。

正文

我们先了解一下编写程序都要涉及到哪些东西,熟悉一下SDK的基本组件,然后编写一个很简单的小程序。

一、分析Demo

在上一节建立的工程Demo下,打开src/com.android.demo下的DemoActivity.java,如下所示:

9b231fe485f4f3efcfba96a685499090.png

Demo程序的代码就只有13行,我们依次来分析一下:

package com.android.demo;/** 申明这个文件的代码属于包“com.android.demo” */

import android.app.Activity;/** 从Android SDK中引用Activity组件 */

import android.os.Bundle;/** 从Android SDK中引用Bundle组件 */

public class DemoActivity extends Activity {/** 新建类DemoActivity,继承Activity,它就拥有Activity的特性了 */

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {/** 重写基类的同名函数,程序运行候创建Activity时被调用 */

super.onCreate(savedInstanceState);/** 调用基类的同名函数 */

setContentView(R.layout.main);/** 设置试图,用于显示界面 */

}

}

第1行,声明代码属于哪个包,这里的包名得与文件所在的包对应上,否则会报错。

第3、4行,引用组件。这里的“引用”并不像其他语言的include那样将文件包含进来,只是告诉编译器,后面会使用到这里面的成员。

关于Package 与 Import的详细说明,>>请到这里查看。

第6行,新建一个类DemoActivity,继承Activity。JAVA是一门完全面向对象的语言,所有东西都要封装在类里面,之前不熟悉面向对象的朋友估计会很不习惯(话说我之前用PHP做WEB开发,哪里都能写实现…)。DemoActivity类继承了Activity的特性,就属于一个“Activity”了(前面提过,Activity是Android中的基本组件之前,非常之基础,任何有界面的程序都有它)。

想深入了解“面向对象”的同学,>>请到这里查看。

第9行,重载onCreate函数。有编程经验的同学看到on前缀就知道这个函数是个回调函数,属于小受受,只能“被”,它在Activity这个界面开始创建时被调用。

第10行,调用基类的同名函数。基类还有些事情要处理呢,得通知他。

第11行,指定用哪个视图来显示界面。从字面上可以看到setContentView(R.layout.main),采用R.layout.main作为试图,那么R.layout.main代表什么?我们要修改的话从哪里下手呢呢?

我们在上一节介绍工程文件的时候介绍过一个由IDE自动维护的文件夹gen,里面有个R.java文件,有同学可能明白了,这里就是引用里面的内容,如下所示:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java写一个android程序_【Android开发笔记】3.编写第一个Android程序 的相关文章

  • 【java实现二叉树的各种遍历方式】

    二叉树的各种遍历方式 通过递归方式 可实现二叉树的层级遍历 先序 中序 后序等遍历方式 package com ykq import java util ArrayList import java util List author ykq
  • nvidia 显卡驱动

    nvidia settings ERROR NVIDIA driver is not loaded ERROR Unable to load info from any available system 然后查看 home drive 发现
  • spring-boot项目打包时候出现boot-inf文件夹的问题

    前言 这问题不是我发现的 刚好碰到而已 下面几位同仁都遇到过 spring boot子模块打包去掉BOOT INF文件夹 摘抄如下 1 spring boot maven打包 一般pom xml文件里会加
  • C/C++ 子类调用父类中的私有成员变量(对比JAVA)

    C Person中age为私有的 通过Persron getAge 可以获取age的值 include
  • PWM信号通过功率三极管控制电机,PWM波形失真问题。

    电路图如下所示 上图M 为5V电源 电机与二极管D3并联 在调试过程中 PB6输入频率为15 268KHz 占空比36 17 为PWM信号 既周期为64uS 高电平为17uS PWM信号如下图所示 经过R12后三极管基极的波形如下图所示 高
  • 数据结构与算法之美

    当我们要去做一件事的时候 必须要问自己三个问题 是什么 什么是数据结构与算法 数据结构 就是一组数组的存储结构 算法 就是操作数据的一组方法 数据结构是为算法服务的 算法要作用于特定的数据结构之上 为什么需要数据结构与算法 来谈谈应用层面的
  • 深入理解java IO

    本文的目录视图如下 Java IO概要 a Java IO中常用的类 b Java流类的类结构图 1 流的概念和作用 2 Java IO所采用的模型 3 IO流的分类 4 Java IO流对象 1 输入字节流InputStream 2 输出
  • undefined、undeclared、NaN、Null区别

    undefined的是声明了但是没有赋值 javascript在使用该变量是不会报错 undeclared 是未声明也未赋值的变量 JavaScript访问会报错 Null 只有一个null undefined 是由null派生处理的 因此
  • 2021,VR又要热了?

    配图来自Canva可画 业界普遍认可 VR AR是5G时代最核心的应用场景 也将会是智能手机之后的下一代主流移动计算平台 2021年开年伊始 VR产业传来喜讯 1月4日 爱奇艺孵化的VR厂商 爱奇艺智能宣布完成由屹唐长厚基金 清新资本共同投
  • python代码:基于DDPG(深度确定性梯度策略)算法的售电公司竞价策略研究

    python代码 基于DDPG 深度确定性梯度策略 算法的售电公司竞价策略研究 关键词 DDPG 算法 深度强化学习 电力市场 发电商 竞价 说明文档 完美复现英文文档 可找我看文档 主要内容 代码主要研究的是多个售电公司的竞标以及报价策略
  • 大数据平台测试-git常用操作(白盒测试基础)

    一 前言 学习Git是非常有价值和重要的 无论是一个个人开发者还是在团队中进行协作开发 以下是一些学习Git的原因 版本控制 Git是目前最流行的分布式版本控制系统 可以帮助你跟踪 管理和控制代码的版本 你可以轻松地回退到先前的版本 比较不
  • Python数据处理之导入导出excel数据

    Python的一大应用就是数据分析了 而数据分析中 经常碰到需要处理Excel数据的情况 这里做一个Python处理Excel数据的总结 基本受用大部分情况 相信以后用Python处理Excel数据不再是难事儿 xlwt库将数据导入Exce
  • React实现页面之间的跳转

    目录 1 需求说明 2 技术实现 3 代码展示 4 效果展示 5 参考文献 1 需求说明 目前在学习过程中需要结合自己之前复现的论文算法弄一个人工智能安全平台系统 其中需要做一个前端展示我们的模块 我们点击模块就可以跳转到相应的界面 因为之
  • CGAL 安装配置(Windows+VS2017 64位)

    参照官网安装步骤 1 使用vcpkg安装 会自动安装cgal所需的包 假设已安装cmake 用来编译 和 qt cgal的界面包 具体步骤如下 下载安装vcpkg C dev gt git clone https github com mi
  • 大模型靠“深呼吸”数学再涨8分!谷歌DeepMind发现AI自己设计提示词效果胜人类...

    梦晨 发自 凹非寺量子位 公众号 QbitAI 提示词中加上 深呼吸 AI大模型数学成绩就能再涨8 4分 谷歌DeepMind团队最新发现 用这个新 咒语 Take a deep breath 结合大家已经熟悉的 一步一步地想 Let s
  • spark报错:CREATE TEMPORARY TABLE

    异常信息 2022 02 09 03 14 01 INFO Error in query 2022 02 09 03 14 01 INFO CREATE TEMPORARY TABLE is not supported yet Please
  • 联想拯救者R7000p 2021风扇异响解决办法

    联想拯救者R7000p 2021风扇异响解决办法 23年了 电脑用了2年 F1键下面的风扇跟拖拉机一样 在没有开任何软件下 都一直再高速转 在网上搜了下 看到19款 21款的拯救者都有这个问题 解决办法呢 网上看到的有 更新BIOS 去官网
  • 设计模式(Design Patterns)

    原文地址 http blog csdn net zhangerqing article details 8194653 设计模式 Design Patterns 可复用面向对象软件的基础 设计模式 Design pattern 是一套被反复
  • 机器学习算法+代码

    机器学习 一 概述 1 机器学习研究方向 传统预测 图像识别 自然语言处理 2 数据集构成 数据集 特征值 目标值 监督学习 目标值为类别 属于分类问题 目标值为连续数据 属于回归问题 无监督学习 无目标值 3 机器学习流程 获取数据 数据

随机推荐

  • Python,OpenCV骨架化图像并显示(skeletonize)

    Python OpenCV骨架化图像并显示 skeletonize 1 效果图 2 源码 参考 1 效果图 自己画一张图 原图 VS 骨架效果图如下 opencv logo原图 VS 骨架化效果图如下 2 源码 图像骨架化
  • 统一登录门户系统

    随着等保2 0和密评工作的深入推进 各政企单位的应用系统建设会向着更安全 更标准方向发展 为了推进整合信息共享 破除各系统之间的壁垒 首先要建设的就是统一登录门户系统 常见的统一登录要求 还是基于一个统一的入口 由统一登录入口完成登录后 可
  • kafka java 性能测试_针对kafka_2.13版本测试过程中的一些坑

    声明 这是在windows10上进行kafka 2 13demo搭建时的过程记录 提供给同学们参考 1 jdk先要装一下 自己安装的kafka最好检查一下配置文件中的参数 server properties 1 zookeeper conn
  • Java Pattern.matcher()方法具有什么功能呢?

    转自 Java Pattern matcher 方法具有什么功能呢 下文笔者讲述Pattern matcher 方法的功能简介说明 如下所示 Pattern matcher 方法的功能 用于匹配字符串或返回Matcher实例 Pattern
  • VM安装mac问题

    安装VM以及mac虚拟机 http tieba baidu com p 2847457021 遇见问题 您的 mac os 客户机正在使用cd dvd 此操作无法继续 请忽略此消息 并从客户机内弹 首先 需要下载安装darwin6 iso才
  • 自动化测试岗位建议熟读!!!Python+Selenium代码编写方法大全

    整理过的自动化测试selenium工具代码常用方法大全 对于常使用selenium工具的朋友一定经常会使用 建议熟读熟练 当然收藏之后复制粘贴也可以 这些整理过的web自动化测试进阶资料 有需要的可以进入群聊免费领取点击并输入暗号 CSDN
  • ganymed-ssh2实现java ssh协议采集

    我的博客第一篇讲的就是用Maverick组件实现java ssh协议采集 可惜Maverick是个商业软件 不开放源码且只有45天的试用期 实际上在网上也能搜到不少实现java ssh的开源组件 例如orion ssh2 trilead s
  • Vue路由组件独有的两个生命周期钩子

    1 作用 用于捕获路由组件的激活状态 2 具体名字 2 1 activated路由组件被激活是触发 activated this timer setInterval gt console log this opacity 0 01 if t
  • Elastic Search:(一)快速入门

    目录 1 快速入门 1 1 核心概念介绍 1 2 RESTful风格介绍 1 2 1 概念 1 2 2 方法 1 3 索引 1 3 1 新增索引 PUT 1 3 2 获取索引 GET 1 3 3 删除索引 DELETE 1 3 4 判断索引
  • 以AI对抗AI,大模型安全的“进化论”

    点击关注 文丨刘雨琦 编 王一粟 互联网时代 我们是更危险 还是更安全 2016年 互联网正值高速发展之际 电梯广告经常出现这几个大字 两行标语 从病毒木马到网络诈骗 对于安全的思考 安全防范技术的建立一直在与科技发展赛跑 同样 大模型时代
  • paypal中授权返回_2020最新教程:如何在Unity Ads中填写W-8BEN(W8税表)

    税收资料作为payout profile的一部分 是必须要填写的 即使你不是美国居民 也需要填写个人资料的 纳税 部分 否则将无法获得来自于Unity的付款 由于我们不是美国居民 因此只需要填写W 8BEN即可 其实 它的填写方法与我之前写
  • 计算机中1kb等于多少字节,在计算机中1kb等于多少字节

    在计算机中1kb等于1024个字节 字节是计算机信息技术用于计量存储容量的一种计量单位 也表示一些计算机编程语言中的数据类型和语言字符 一个字节存储8位无符号数 本文操作环境 windows10系统 thinkpad t480电脑 学习视频
  • QEMU-在内核中增加驱动(6)

    上面是我的微信和QQ群 欢迎新朋友的加入 进入linux源码目录 增加驱动 hello c include
  • Java面试----2018最全Redis面试题整理

    1 什么是Redis 答 Redis全称为 Remote Dictionary Server 远程数据服务 是一个基于内存的高性能key value数据库 2 Redis的数据类型 答 Redis支持五种数据类型 string 字符串 ha
  • python 访问网络失败 huggingface ConnectionError

    使用Hugginface下载数据集 dataset load dataset path seamew ChnSentiCorp 结果遇到网络问题 huggingface ConnectionError Couldn t reach 原因是无
  • element中同一个一面使用两个table,使用v-if判断显示,数据混乱

    错误 在一个页面中使用两个table 绑定不同的数据 并且在table中row中使用
  • 梯度下降法求解线性回归--Numpy实现

    梯度下降法求解一元线性回归 依然是这个房价预测的任务 这是一个一元线性回归问题 这次我们采用梯度下降法来求解它可以分为5步 第1步加载样本数据x y 第2步设置超参数 在这个例子中 超参数包括学习率和迭代次数 第3步设置模型参数的初值 w
  • 巧用搜索摆脱新手程序员标签

    文章目录 巧用搜索摆脱新手程序员标签 在哪里搜 搜索什么 搜教程 搜IDE 搜特性 搜集成 搜比较 搜定义 搜原因 搜架构 搜错误 扩展阅读 巧用搜索摆脱新手程序员标签 在哪里搜 国外网站 Google 搜索引擎 Bing 搜索引擎 Git
  • Golang初入编程-踩坑笔记(1)

    一定要自己动手写 不然使用的时候可能连等号的位置都搞不清楚 该语言没有面向对象的概念 什么函数传什么参数返回什么值自己要多练习 i 属于独立语句 不能和其他语句写到一起 自己占一行 以下东东需要初始化 开辟空间 包括切片 指针 map 数组
  • java写一个android程序_【Android开发笔记】3.编写第一个Android程序

    前言 上一节我们通过一个Demo熟悉了Eclipse的基本使用 如何在模拟器和手机中运行以及如何打包成APK 但没具体编写代码 相信很多同学已经按耐不住了吧 这一节我们会动手编写代码来熟悉Android SDK的情况和JAVA的一些特性 声