Android学习第一篇

使用RustDesk或者AnyDesk的TCP隧道实现Codesys系列PLC的远程调试和下载 Codesys远程调试 阅读详情

学习的第一个Android程序

程序讲解

首先我们来看一下界面的样子





实现的效果是,当我们在输入出输入任何文字等等,然后点击发送按钮,就可以在另一个界面上看到我们刚才输入的文字信息




知道了效果,我们来看看各部分大的代码吧!


首先我们要看的是第一个界面的代码firstapp.xml

<span style="font-size:18px;"><strong><?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >
    
	<EditText 
        android:id="@+id/edit"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"/>
    <Button 
        android:id="@+id/send"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="发送"
        android:onClick="SendMessage"/>
</LinearLayout>
</strong></span>


我们来解析一下代码中的一些东西

首先我们来讲一下父标签中的orientation属性,这个属性有两个可选值,分别是"horizontal"和"vertical"前者表示的是该界面上的控件按水平排布,后者表示的是垂直排布

接着我们来说说weight属性,该属性在这里的作用是把一行划分为几部分,这里是划分为了一份,而由于是水平排布的控件,后面还有一个按钮,所以当该EditText占了一份以后,剩下的都属于Button


以下这部分是在API开发文档中的定义

The weight value is a number that specifies the amount of remaining space each view should consume, relative to the amount consumed by sibling views. This works kind of like the amount of ingredients in a drink recipe: "2 parts vodka, 1 part coffee liqueur" means two-thirds of the drink is vodka. For example, if you give one view a weight of 2 and another one a weight of 1, the sum is 3, so the first view fills 2/3 of the remaining space and the second view fills the rest. If you add a third view and give it a weight of 1, then the first view (with weight of 2) now gets 1/2 the remaining space, while the remaining two each get 1/4


我们再来讲讲android:onClick属性

一般监听OnClickListener事件,我们都是通过Button button = (Button)findViewById(....);

button.setOClickLisener....这样的方式来实现。

而这里可以在xml中定义好方法名称,在Activity中实现该方法就可以了



然后我们来讲讲MainActivity.java

<span style="font-size:18px;"><strong>package com.example.firstapp;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends ActionBarActivity {

	public EditText edit;
	public Button btn_Send;
	public final static String EXTRA_MESSAGE="com.example.firstapp.MESSAGE";
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.firstapp);

	}
	
	public void SendMessage(View view)
	{
		Intent intent=new Intent(this,DisplayMessage.class);
		edit=(EditText) findViewById(R.id.edit);
		String message = edit.getText().toString();
		intent.putExtra(EXTRA_MESSAGE, message);
		startActivity(intent);
	}
}</strong></span>


我们通过putExtra来传递参数,同时我们会在后面通过getStringExtra来接受数据,此处传递的时字符串,所以使用的时getStringExtra来接受数据

我们还可以传递Bundle数据包

//发送数据包

Bundle b = new Bundle();

b.putString("name","abcdefg");//字符串类型

b.putInt("age",2);//int类型

Intent i = new Intent();

i.putExtra(b);//把整个Bundle作为参数传递过去


//在另一个Activity中接受数据包

Bundle data = i.getExtra();

String.Format("name=%s,age=%d",data.getString("name"),data.getInt("age"));

如果在之前的Bundle中没有这个数据,我们可以在获取的时候重载一下该方法

例如:

data.getExtra("name1","Felix");这里就是对一个名为name1的进行重载方法并且赋值Felix。如果之前有值,则会覆盖这里的赋值,即不为Felix

还有一种获取的方法就是

Bundle data= i.getBundleExtra("data");//引号中的data是之前发送的时候给的名字


i.putExtra("user",new 类名(参数1,参数2,……));

//接受数据

方法1:给类实现Serialzable(可序列化)这个接口

然后再接受的时候只需

类名 变量名 = (类名)i.getSerializableExtra("user");

接下来就直接调用类中的属性就可以了。

方法2:给类实现Parcelable接口

需要自己重写一个方法,用于保存数据

writeToParcel(Parcel dest,int flags){

dest.writeString(get属性);

dest.writeInt(get属性());

}

i.getParcelableExtra("user");


首先在onCreate中获取界面,通过setContentView(R.layout.firstapp)这样我们通过模拟器就可以看到想要的结果了,下面那个才是最关键的部分了,有了这个函数我们才能实现点击按钮实现发送数据的功能,这里我们需要注意的是函数是有参数的(自己在弄的时候忘记写参数了,导致程序出现崩溃,后来修改了以后就没事了)

这里还有要注意的几点是

  • Be public 必须是public的
  • Have a void return value 无返回值的
  • Have a View as the only parameter (this will be the View that was clicked) 参数必须是View的
我们来讲解一下SendMessage中的的几行代码吧
Intent的中文意思是“意图,意向”,在Android中提供了Intent机制来协助应用间的交互与通讯,Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 Intent传递给调用的组件,并完成组件的调用。Intent不仅可用于应用程序之间,也可用于应用程序内部的Activity/Service之间的交互。因此,可以将Intent理解为不同组件之间通信的“媒介”专门提供组件互相调用的相关信息。
这是API文档里的解释
An Intent is an object that provides runtime binding between separate components (such as two activities). The Intent represents an app’s "intent to do something." You can use intents for a wide variety of tasks, but most often they’re used to start another activity.
跳过两句,我们来看看intent.putExtra(EXTRA_MESSAGE, message);这行代码我们要实现的功能是把输入的数据保存在一个静态常量EXTRA_MESSAGE中,然后我们再新的Activity中可以直接通过该值获取,最后就是启动Activity

这部分完成后,我们新建一个DisplayMessage,在里面我们只是需要实现获取刚才输入的信息,并把它显示在一个TextView中,然后把它放到视图中去
public class DisplayMessage extends ActionBarActivity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		//setContentView(R.layout.new_one);
		Intent intent=getIntent();
		String message=intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
		
		TextView textView =new TextView(this);
		textView.setText(message);
		textView.setTextSize(40);
		
		setContentView(textView);
	}
}

这样我们就完成了想要功能!


姿态传感器/陀螺仪之LSM6DSLTR应用驱动程序设计 * LSM6DSLTR I2C地址(SA0=1) *//* 初始化LSM6DSLTR传感器(加速度计±2g,陀螺仪±250°/s) *//* 加速度计灵敏度 *//* 角速度值(°/s) *//* I2C句柄 *//* 陀螺仪灵敏度 *//* 加速度值(g) *//* 温度值(°C) *//* 设备地址 *//* IF_INC=1: 自动增量地址 *//* 10Hz采样率 *//* 配置I2C1引脚:PB6->SCL, PB7->SDA *//* 转换为实际温度值(°C),参考手册中温度计算公式 */ 阅读详情

相关推荐

Windows10检查Cuda和cuDNN是否安装成功?

简介:根据上篇博客已经完成了CUDA和cuDNN的安装步骤,完成对其的安装。下面将来检查它们是否安装成功。 1 .首先win+R进入CMD,在命令行输入nvcc -V,如下图所示,则表示cuda已经安装成功。 2 .进入到cuda的安装路径,C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\extras\demo_suite,找到如下两个.exe文件: 首先执行:deviceQuery.exe,查看是否出现如下界面: 然后执行bandwid

jhsignal的博客 14万+

APP登陆设计 User的全局设置

App登陆流程 User对象的控制

NELA的博客 973

从零到一:手把手教你用SAM-BA工具完成嵌入式系统烧录

本文详细介绍了如何使用SAM-BA工具完成嵌入式系统烧录的全过程,包括环境搭建、硬件连接、Bootloader烧录以及完整系统镜像的烧录步骤。针对常见问题提供了实用的排查指南,并分享了批量烧录和自定义脚本的高级技巧,帮助开发者高效完成嵌入式系统开发。

weixin_42523792的博客 382

【android学习笔记】第一篇——Android开发工具及安卓基础

人生中的第一篇博文。 第一次写博客,本文仅用来记录自己学习安卓开发上的遇到的问题与学习心得,想看就看。( ̄▽ ̄)/ 捣鼓了好几天,今天终于确定了自己的Android开发工具。duang!就是他 Eclipse(老版教材之王) Android Studio 为什么不用Eclipse...哎,配置了好几天,最后还是一堆报错!枉费我一番心思! 然后Android Studio,下载,安装,...

qq_42795049的博客 416

手把手教你用certificate-manager修复Vcenter证书过期问题(附密码重置技巧)

本文详细解析了Vcenter证书过期引发的503服务不可用、密码错误等典型故障现象,并提供了使用certificate-manager工具进行系统性修复的完整步骤。文章重点阐述了证书体系原理、精准诊断方法,并分享了在SSO验证失败时通过vdcadmintool重置密码的关键技巧,帮助管理员快速恢复平台并建立预防性运维策略。

swift5iosmith的博客 459

STM32实战开发(110):基于STM32的智能地震监测系统开发

地震监测系统是自然灾害预警体系中至关重要的一部分。随着地震灾害的频发和对自然灾害预测精度要求的提高,智能地震监测系统逐渐成为研究的热点。STM32作为一款高性能的微控制器,凭借其强大的处理能力和丰富的外设接口,在地震监测领域中得到了广泛应用。本篇文章将详细介绍如何使用STM32实现一个智能地震监测系统的开发过程,涵盖硬件设计、软件编程、系统实现及相关代码。通过集成加速度传感器、地震数据采集、实时数据处理和无线数据传输功能,我们可以设计一个高效、稳定的智能地震监测系统。

2201_76125393的博客 710

android学习第一篇-Activity

android学习第一篇-Activity

fxw123的专栏 148

前端技能树,面试复习第 54 天—— 手写代码:情景题

前端修罗场提供全网最专业的前端优质文章与社区服务,为应届生,初中级前端工程师提供全面、优质的面试服务、技能提升、职场解惑服务!内容包含:前端面试辅导,前端面试题,前端交流,前端答疑,前端基础知识,前端知识体系,技能树搭建,Javascript,CSS,CSS3,HTML,React,Vue,小程序,前端简历,职业交流,远程工作,英文交流,英文提升,外企,互联网,国企,大厂,牛客面试题,掘金面试题,面经,优质前端文章分享...

前端进阶之路 | 中大厂、外企、国企内推 | 面试培训 | 简历修改 986

daliu_IT学习Android笔记第一篇--Android是什么?安卓的logo来源?安卓的发展过程?

Android是什么?安卓的logo来源?安卓的发展过程?   安卓的名字: Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。 尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。Android操作系统最初由Andy Rubin开发,主要支持手机。 安卓logo的介绍: An

刘哥聊技术 2019

【AI应用实战-claude】在飞书上接入claudecode进行远程使用(十三)

本文介绍了三种将ClaudeCode接入飞书的方案,包括官方飞书CLI工具(推荐)、cc-connect中转工具和MCP协议集成。官方飞书CLI适合自动化办公场景,通过简单配置即可实现消息发送和文档管理;cc-connect适用于远程调用Claude功能,通过飞书群聊触发响应;MCP协议则适合开发者构建复杂工作流。文章提供了详细的操作步骤,并针对不同使用场景给出了选择建议。

1013

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

安卓学习第一篇

一、实验题目 中山大学智慧健康服务平台UI设计 二、实现内容 实现一个Android应用,界面呈现如图中的效果。 三、实验结果 (1)实验截图 (2)实验步骤以及关键代码 activity_main.xml 整体构建约束布局 &lt;android.support.constraint.ConstraintLayout xmlns:android="http://schemas.an...

羊城迷鹿的博客 211

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

安卓开发入门篇(一):Android Studio导入ApiDemos

引言 本人程序员,之前做网站比较多,nodejs/express+html/css+MySQL,再之前也做过Java开发,编程上还是有丰富的经验。 在持续的实战中,发现想做产品的话,前端似乎更重要,因为前端才能看到产品形态。虽然说移动端形势已经每况愈下,但考虑到VR、车载系统、Glass等各类终端系统都是基于安卓,还是觉得有必要掌握移动端开发。 遂立志学习安卓,边学习,边记录心路

ljb_blog的专栏 2360

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

解除安卓车机禁止安装软件_安卓开发学习第一篇:软件安装

今天突然心血来潮想要学习安卓开发,开发自己需要的软件。经过一天的琢磨,对软件部分有了大概的了解,现特意记录下来以便自己复习以及方便大家的学习。首先要安装的软件是Android Studio,然后因为Android是基于JAVA开发的,还要安装JDK,有的人说要先安装JAVA然后再安装Android Studio,经实测顺序无所谓,只是需要注意的是不要忘了配置环境。一、JAVA JDK安装1.下载官...

weixin_39900180的博客 9798

Android 学习第一篇

1.Android主要的四大组件 组件 描述 Activities 描述UI,并处理用户于屏幕的交互 Services 处理与应用程序关联的后台操作 broadcast receivers 处理Android操作系统与后台之间的通信 Content providers 处理数据和数据库管理方面的问题 adb指令(Andr...

FLY的专栏 288

安卓系统怎么安装软件_安卓开发学习第一篇:软件安装

今天突然心血来潮想要学习安卓开发,开发自己需要的软件。经过一天的琢磨,对软件部分有了大概的了解,现特意记录下来以便自己复习以及方便大家的学习。首先要安装的软件是Android Studio,然后因为Android是基于JAVA开发的,还要安装JDK,有的人说要先安装JAVA然后再安装Android Studio,经实测顺序无所谓,只是需要注意的是不要忘了配置环境。一、JAVA JDK安装1.下载官...

weixin_39795845的博客 579

Android Activity 学习总结第一篇

开篇语 说到 Activity 首先提到的就是生命周期、启动模式、异常情况下的生命周期,这些都是比较基础而且重要的知识,需要熟练掌握。当然也是面试经常遇到的问题。接着就是整个 Activity 的启动流程了,包括启动层面的第一次进入 app 或者当初的启动一个 Activity 中的启动流程了,这都需要结合源码分析并学习。这个准备在第二篇开始学习。今天就来总结下基础部分的知识点。 Activity...

PowerMartin Talk 518

老海安卓开发学习实践——第一篇 安卓环境搭建与优化

一恍惚十年过去了,09年的时候正式安卓系统开始全面铺开的一年,当时也搭建了环境但是并没有坚持学习下来。从这周开始从头学起,希望还能做出点事情。至少给自己找点事情做吧。闲言少絮,进入正文。 一、准备阶段。 重新安装操作系统,我的系统是64位的CPU,安装64位Win10出现点小问题,没法继续,只能安装32位Win10操作系统,这也是给我自己挖的第一个大坑。之前我曾尝试过Win7 ...

老海的专栏 152

android 学习第一篇

android Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。目前,最新版本为Android 2.4 Gingerbread和Android 3.0 Honeycomb。  Android是基于Linu

java 808

【安卓逆向】Frida学习笔记--第一篇

读书笔记:《安卓Frida逆向与抓包实战》

Godam 2646

android学习第一篇 开发环境搭建

android开发环境搭建 由于博主最近在学golang,所以就想着顺手把android开发给学了。最近这两天都在折腾idea,搭建开发环境。昨天晚上终于把golang和android的环境都搭好了,总结一下。 博主一开始使用android studio 做 android 开发,但使用idea做 golang 开发。这两个IDE都是功能十分庞大的,一同运行的话两个分别占用1.5G内存,所以就

爱生活,爱编程 1583

Android wakelock 学习总结第一篇

转载自: http://slightsnow.blog.chinaunix.net/uid-29269256-id-4090529.html

自由专栏 5982

【读书笔记】安卓学习笔记第一篇——个人杂谈

  最近打算转向安卓平台的安全了,因为之前一直没有接触过安卓平台的安全,所以要从最底层的安全机制开始学起。一直以来都是在做Windows平台的安全的,对于Linux的了解不多,而安卓恰好又是基于linux平台的东西。所以搞安卓平台就很有必要去学习一下系统机制方面的东西了。最近看了一些资料, 对于安卓平台有了一个初步的理解,首先安卓给我的感受就是系统的层次很复制。我比较熟悉Windows的...

weixin_30569033的博客 209

学习android第一篇

一遍问,一遍学 第4章:android用户界面   其类的结构如图所示: 4.1 菜单 1)菜单的分类:选项菜单,上下文菜单,子菜单 选项菜单的创建过程:   2)当用户长时间按住不放,弹出来的菜单,我们称为上下文菜单。 选项菜单的创建过程如下: 3)子菜单的创建过程 4.2对话框 在程序中创建对话框,需要如下步骤: 4.3 提示信息 在程序中创建提示信息的步骤如下: 4

junlinux的专栏 489

android学习第一篇:环境搭建

以下是我初学android环境搭建的过程及遇到的问题。 首先:下载安装JDK JDK下载地址为:http://www.oracle.com/technetwork/java/javase/downloads/jdk-7u2-download-1377129.html 具体如下图: 变量步骤如下: 我的电脑->属性->高级->环境变量->系统变量中添加以下环境变量: JAVA_HOM

ling499185749的专栏 870

Android学习第一篇——Windows下Android环境搭建

 主要内容如下:1)环境搭建1.1、JDK安装1.2、Eclipse安装1.3、Android SDK安装1.4、ADT安装1.5、创建AVD2)HelloWorld实例程序

lutongbin的专栏 716
上一篇: Android学习第一课
下一篇: Android学习第二篇——ActionBar
Felix皇子
博客等级 码龄13年 143粉丝 66原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值