当前位置: 首页 > news >正文

Android开发

前言:因为这学期选了手机APP开发这门课,所以还是写个博客记录一下学习过程,包括安卓开发和ios开发。用到的资料包括课程PPT,和我在网上找的一些视频和资料。

1.Andriod入门

  • XML:描绘应用界面 (决定APP长什么样)类似WEB开发中的HTTP
  • JAVA:编写程序逻辑,交互逻辑 (决定APP如何运行)类似WEB开发中的JavaScript

将界面设计和程序逻辑分开,也利于代码复用,同一份XML/JAVA文件可以用于不同的场景下。

2.从顶向下了解最基础的一个Andriod app

在Andriod Studio 新建完一个项目,可以看到以下的项目结构

 最顶层的文件是AndroidManifest.xml包含了APP的配置信息,决定了APP如何显示和运行。

每个Andriod app都必须有一个AndroidManifest.xml文件

 AndroidManifest.xml中的activity指向了MainActivity,也就是MainActivity.java文件

这个java文件决定了如何运行APP

 MainActivity.java文件用到了activity_main,也就是指向了activity_main.xml文件,该文件描述了APP界面如何显示。

 至此,也就说清楚了一个Andriod app最基础的代码编写逻辑。

3.创建新的APP页面

很显然,上述提到的最基础的代码流程,只有一个APP页面,这显然是不够的,我们还需要了解Andriod Activity(APP页面)是如何创建的。

 如上图new一个activity,便会自动完成创建activity的三个步骤

  • 创建xml文件
  • 创建与xml文件对应的java文件
  • 在AndroidManifest.xml中注册activity,也就是添加以下代码:
     <activityandroid:name=".MainActivity2" />

当然也可以手动完成这三步。

创建完新的activity,还需要将该activity与主界面相连接,也就是我们可以从主界面访问到新的界面。

我们可以在主界面添加一个button,当用户点击了这个按钮,就跳转到第二个界面。

添加button:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"android:gravity="center"><TextViewandroid:layout_width="234dp"android:layout_height="115dp"android:text="hello word, today is 0209"android:id = "@+id/tv"></TextView><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="next"android:id="@+id/button"></Button></LinearLayout>

增加跳转功能:

package com.example.myapplication3;import androidx.appcompat.app.AppCompatActivity;import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button button = findViewById(R.id.button);button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {Intent intent = new Intent();intent.setClass(MainActivity.this,MainActivity2.class);startActivity(intent);}});}
}

相关文章:

Android开发

前言&#xff1a;因为这学期选了手机APP开发这门课&#xff0c;所以还是写个博客记录一下学习过程&#xff0c;包括安卓开发和ios开发。用到的资料包括课程PPT&#xff0c;和我在网上找的一些视频和资料。 1.Andriod入门 XML&#xff1a;描绘应用界面 &#xff08;决定APP长什…...

virtualbox虚拟机导入到vmware esxi虚拟机

virtualbox导出的ova文件转换为ovf文件导入到vmware esxi虚拟机 1、下载安装程序 链接&#xff1a;https://pan.baidu.com/s/1pRP8MQswDSDecMB5eJGNYA?pwdmv2q 提取码&#xff1a;mv2q 双击VMware-ovftool-3.0.1-801290-win.x86_64.msi默认安装 2、在cmd中进入到Vware OVF…...

如何使用命名空间管理C++代码

在编写 C 代码时&#xff0c;管理代码组织和消除名称冲突是一个重要问题。 为了解决这个问题&#xff0c;C 提供了一种叫做命名空间的机制。命名空间可以将代码组织在一起&#xff0c;并防止不同模块间的名称冲突。 定义命名空间 首先&#xff0c;你需要在代码中声明命名空间…...

海思3559:BT656调试笔记

前言 海思3559a的sdk例子是没有提供BT1120和BT656视频接入的&#xff0c;但实际上硬件是可以支持接入的。不过前提是只支持逐行方式输入&#xff0c;不支持隔行视频&#xff0c;如果想输入PAL制式的隔行视频&#xff0c;请先用芯片转成逐行再接入。不知道是官方手册有意无意的忽…...

reactor之hooks

Hooks 是一个工具类&#xff0c;它提供了一些方法&#xff0c;用来在 Reactor 的各个阶段添加回调函数&#xff0c;进行全局性的操作。总体来说分为三类&#xff1a; 本部分算是reactor中比较高级的部分&#xff0c;建议在开始上手用reactor做项目前&#xff0c;大概知道有这么…...

单片AR眼镜Monocle揭秘:基于反射棱镜,重15g续航1小时

提问&#xff1a;一个戴近视眼镜的人&#xff0c;会愿意再同时戴一副AR眼镜吗&#xff1f;这个问题对于VR来说并不难&#xff0c;通常VR头显为镜框留出了空间&#xff08;一些Pancake VR自带屈光调节机制&#xff09;&#xff0c;因此二者并不冲突。然而AR眼镜体积更紧凑&#…...

计算机视觉框架OpenMMLab开源学习(五):目标检测实战

✨写在前面&#xff1a;强烈推荐给大家一个优秀的人工智能学习网站&#xff0c;内容包括人工智能基础、机器学习、深度学习神经网络等&#xff0c;详细介绍各部分概念及实战教程&#xff0c;通俗易懂&#xff0c;非常适合人工智能领域初学者及研究者学习。➡️点击跳转到网站。…...

SpringIOC推导IOC初步

了解准备 什么是Spring&#xff1f; Spring是一款轻量级的控制反转&#xff08;IOC&#xff09;和面向切面编程&#xff08;AOP&#xff09;的非入侵式开源框架 2002年Spring的前身interface21发布&#xff0c;随后在2004年3月24日正式更名发布Spring1.0版本Spring Frameword缔…...

Linux(centOS7)虚拟机中配置 vim

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是小童&#xff0c;Java开发工程师&#xff0c;CSDN博客博主&#xff0c;Java领域新星创作者 &#x1f4d5;系列专栏&#xff1a;前端、Java、Java中间件大全、微信小程序、微信支付、若依框架、Spring全家桶 &#x1f4…...

消息中间件-RocketMQ入门 消息发送的三种方式

消息中间件-RocketMQ入门 消息发送的三种方式消息中间件简介应用场景常用消息中间件RocketMQ核心概念入门案例-生产者和消费者代码逻辑消息发送的三种方式同步发送异步发送一次性消息消息中间件简介 应用场景 假设现在有订单微服务和积分微服务,正常请求流程之后是不是一个订…...

【FLASH存储器系列十九】固态硬盘掉电后如何恢复掉电前状态?

掉电分两种&#xff0c;一种是正常掉电&#xff0c;另一种是异常掉电。不管是哪种原因导致的掉电&#xff0c;我们都希望&#xff0c;重新上电后&#xff0c;SSD都需要能从掉电中恢复过来&#xff0c;继续正常工作。正常掉电恢复&#xff0c;这个好理解&#xff0c;主机通知SSD…...

Java知识点细节简易汇总——(7)面向对象编程(高级部分)

一、类变量、静态变量static static访问方式&#xff1a; public class VisitStatic {public static void main(String[] args) {//方法一://类名.类变量名//说明&#xff1a;类变量是随着类的加载而创建&#xff0c;所以即使没有创建对象实例也可以访问System.out.println(A.…...

阻塞式队列-生产者消费者模型

1.阻塞队列是什么 阻塞队列是一种特殊的队列. 也遵守 "先进先出" 的原则. 阻塞队列能是一种线程安全的数据结构, 并且具有以下特性: 当队列满的时候, 继续入队列就会阻塞, 直到有其他线程从队列中取走元素.当队列空的时候, 继续出队列也会阻塞, 直到有其他线程往队…...

引导滤波code

文章目录1. 原理概述2. 实验环节2.1 验证与opencv 库函数的结果一致2.2 与 双边滤波比较2.3 引导滤波应用&#xff0c;fathering2.3 引导滤波应用&#xff0c;图像增强2.4 灰度图引导&#xff0c;和各自通道引导的效果差异2.5 不同参数设置影响3. 参考引导滤波1. 原理概述 引导…...

Leetcode.2353 设计食物评分系统

题目链接 Leetcode.2353 设计食物评分系统 Rating &#xff1a; 1782 题目描述 设计一个支持下述操作的食物评分系统&#xff1a; 修改 系统中列出的某种食物的评分。 返回系统中某一类烹饪方式下评分最高的食物。 实现 FoodRatings类&#xff1a; FoodRatings(String[] foo…...

C语言学习_DAY_2_变量的定义_输入与输出

高质量博主&#xff0c;点个关注不迷路&#x1f338;&#x1f338;&#x1f338;&#xff01; 目录 I. 变量的定义 II. 变量的赋值 III. 输出 IV. 输入 I. 变量的定义 首先&#xff0c;我们新建一个.c文件在Dev C中&#xff0c;并把之前定义好的程序框架放进去。 此时我…...

mac 安装navicat

由于各种原因发布不了链接&#xff0c;这里记录下&#xff0c;保存在了阿里云里...

RocketMQ快速入门

2.1 消息生产和消费介绍使用RocketMQ可以发送普通消息、顺序消息、事务消息&#xff0c;顺序消息能实现有序消费&#xff0c;事务消息可以解决分布式事务实现数据最终一致。RocketMQ有2种常见的消费模式,分别是DefaultMQPushConsumer和DefaultMQPullConsumer模式&#xff0c;这…...

【虚拟仿真】Unity3D实现从浏览器拉起本地exe程序并传参数

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址我的个人博客 大家好&#xff0c;我是佛系工程师☆恬静的小魔龙☆&#xff0c;不定时更新Unity开发技巧&#xff0c;觉得有用记得一键三连哦。 一、前言 最近有项目需求&#xff0c;从浏览器调起来本地的exe程序&…...

Intel中断体系(1)中断与异常处理

文章目录概述中断与异常中断可屏蔽中断与不可屏蔽中断&#xff08;NMI&#xff09;异常异常分类中断与异常向量中断描述符表中断描述符中断与异常处理中断与异常处理过程堆栈切换错误码64位模式下的中断异常处理64位中断描述符64位处理器下的堆栈切换相关参考概述 中断是现代计…...

终极PC游戏分屏解决方案:Universal Split Screen完全指南

终极PC游戏分屏解决方案&#xff1a;Universal Split Screen完全指南 【免费下载链接】UniversalSplitScreen Split screen multiplayer for any game with multiple keyboards, mice and controllers. 项目地址: https://gitcode.com/gh_mirrors/un/UniversalSplitScreen …...

Linux服务器安全基线自动化实践:基于Ansible的加固方案

1. 项目概述与核心价值“安全加固”这个词&#xff0c;对于任何一个负责线上系统运维、应用部署或者个人服务器管理的朋友来说&#xff0c;都绝不陌生。它就像给自家房子装防盗门、安监控一样&#xff0c;是基础且必要的工作。然而&#xff0c;现实情况往往是&#xff1a;我们面…...

终极NGA论坛浏览体验优化指南:5分钟打造你的专属摸鱼神器

终极NGA论坛浏览体验优化指南&#xff1a;5分钟打造你的专属摸鱼神器 【免费下载链接】NGA-BBS-Script NGA论坛增强脚本&#xff0c;给你完全不一样的浏览体验 项目地址: https://gitcode.com/gh_mirrors/ng/NGA-BBS-Script 还在为NGA论坛繁杂的界面和低效的浏览体验烦恼…...

PXIe-9150嵌入式控制器:构建高集成度自动化测试系统的核心

1. 项目概述&#xff1a;从一块板卡到一套系统最近在整理实验室的测试设备&#xff0c;翻出来几台老旧的PXI机箱&#xff0c;想着怎么把它们重新利用起来。正好手头有个新项目&#xff0c;需要搭建一套多通道、高精度的数据采集与实时处理系统&#xff0c;传统的工控机加板卡的…...

iOS 17-26越狱终极指南:5个安全解锁iPhone隐藏功能的专业方法

iOS 17-26越狱终极指南&#xff1a;5个安全解锁iPhone隐藏功能的专业方法 【免费下载链接】Jailbreak iOS 26.4 - 26, 17 - 17.7.5 & iOS 18 - 18.7.3 Jailbreak Tools, Cydia/Sileo/Zebra Tweaks & Jailbreak News Updates || AI Jailbreak Finder &#x1f447; 项…...

从网站点击到疾病预测:泊松回归模型在5个真实业务场景下的应用拆解与避坑指南

从网站点击到疾病预测&#xff1a;泊松回归模型在5个真实业务场景下的应用拆解与避坑指南 在数据驱动的商业决策中&#xff0c;计数型数据的分析往往被忽视。想象一下&#xff1a;电商平台每天需要决定发送多少条推送通知&#xff0c;客服中心要预测每小时可能接到的投诉电话数…...

3D结构光相机 | 抓取/焊接/测量全搞定,高反光黑色物体重建精度高,工业场景全覆盖,户外无惧强光

一 产品介绍苏州三迪斯维出品的3D相机采用主动结构光技术&#xff0c;拍摄速度快、成像精细、方案成熟稳定&#xff0c;针对不同应用场景物体可输出高质量点云数据图&#xff0c;精度高、速度快、环境自适应性强&#xff0c;不用系列适用场景不同&#xff0c;分别如下&#xff…...

Bluetooth 蓝牙协议详解

一、协议简介蓝牙&#xff08;Bluetooth&#xff09;短距离无线通信技术&#xff0c;主流分经典蓝牙与BLE 蓝牙 5.0/5.3&#xff08;低功耗蓝牙&#xff09;&#xff0c;多用于近距离设备配对、数据透传、外设连接&#xff0c;消费电子与便携设备最常用。二、基础参数底层标准&…...

I2C虚拟项目笔记(二)-virtual sequence实战:中断与异常场景构建

1. 为什么需要模拟中断与异常场景&#xff1f; 在实际的I2C总线通信中&#xff0c;各种异常情况时有发生。比如从设备突然掉电导致无应答&#xff08;NACK&#xff09;&#xff0c;或者主设备在发送数据时遭遇干扰导致传输中断。这些场景如果不在验证阶段充分覆盖&#xff0c;…...

番茄小说下载器:如何用开源工具构建个人数字图书馆?

番茄小说下载器&#xff1a;如何用开源工具构建个人数字图书馆&#xff1f; 【免费下载链接】Tomato-Novel-Downloader 番茄小说下载器不精简版 项目地址: https://gitcode.com/gh_mirrors/to/Tomato-Novel-Downloader 你是否曾经遇到过这样的情况&#xff1a;在手机上追…...