栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

安卓教程----第一行代码学习笔记

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

安卓教程----第一行代码学习笔记

安卓概述 系统架构

Linux内核层,还包括各种底层驱动,如相机驱动、电源驱动等
系统运行库层,包含一些c/c++的库,如浏览器内核webkit、SQLlite、3D绘图openGL、用于java运行针对移动设备定制的dalvik、ART虚拟机等
应用框架层,包含安卓的一些api
应用层 我们写的程序在此

四大组件

活动 你看得到的都叫活动
服务 后台功能
广播接收器 接收通知
内容提供器 应用之间共享数据,如通讯录

开发环境

JDK
AndriodSDK
AndriodStudio

HelloWorld

打开andriod studio
左上角 new project
选择add empty activity(而非no activity) 名字就默认的MainActivity即可

包名要有唯一性,名字设置为helloworld,不勾选use lagacy选项
左上角换成project,这是项目的真实结构, 默认的andriod适合老手快速开发使用


编译、哪个app(app是当前的主项目)、用哪个设备模拟、运行

文件布局


正常情况 我们只需要关注app目录即可。
ps,安卓使用gradle构建


libs是你引入的外部jar包
src是我们自己的代码存放的地方。
andriodTest和tesr是编写测试用例的地方,目前用不到,无需关注
proguard-rules 用于定义代码的混淆规则,当我们发布不想让别人知道我们源代码的时候使用


main目录是我们真正写代码的地方,java就是我们写java代码的目录,res是资源文件,drable是图片,layout是布局,values是字符串,mipmapyo用来放图标的,xxxdpi的后缀是各种分辨率的。最后哪个AndriodManifest.xml用于注册各种组件,各种我们用到的东西 都要在这里声明。

MainActivity.java

系统自动帮我们生成了这些代码 我们不需要记 只要关注 onCreate里面的方法就行了

package com.example.helloworld;

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;

//AppCompatActivity是一种向下兼容的活动
public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {  //oncreate是活动被创建的时候要调用的方法
        super.onCreate(savedInstanceState); //构造器
        //以上的代码块都是固定写法  不用管  下面是我们的代码逻辑
        setContentView(R.layout.activity_main);  //设置布局文件  安卓讲究视图分离  这个R代表res文件夹 后面的是文件路径
    }
}
activity_main.xml


这个是安卓的视图层,默认是图形化编辑器,我们点击code变成代码编辑模式




    


先不用管textview上面的部分,这部分都会帮我们自动生成,我们关注下面的部分即可。由于安卓很智能 当我们输入helloWorld的时候,它自动帮我们生成了一个textview 里面的text就是它的名字。

AndriodManifest.xml

打开发现下面自动生成的文件




    
            
            	
                
                
            
        
    


运行


选择模拟器后,自动安装运行。

升级加button 弹出toast

我们把之前视图文件中TextView的替换成这个

    
        

我们加了歌 linerLayout ,之后会进一步介绍 这里只用记住就行了
当我们在xml中 定义一个id 的时候 用@+id/button1这种语法
当我们想要使用一个id的时候 就去掉加号用@+id/button1z这种语法
之后打开java文件,在设置视图文件的后面 加上

 ......
 setContentView(R.layout.first_layout) ;
 //找到视图层中的button
 Button button1= (Button)findViewById(R.id.button1);  //这里的id就不是文件路径了 安装会把res中的属性都虚拟化出来
 //compileSdkVersion >=26,findViewById 前的强制类型转换是多余的 所以 (Button)可以不用写了
 //设置点击监听器,当被点击的时候 执行被点击的方法  由于java一切都是对象 不能只传入一个函数 所有要传入一个匿名内部类
 button1.setOnClickListener(new View.OnClickListener(){  //注意这里的On的O是大写== 因为这是一个接口
 	@Override
 	public void onClick(View v){
 		//第一个参数是Context 上下文 
 		Toast.makeText(MainActivity.this, "Hello World", Toast.LENGTH_SHORT).show();//活动本身就是一个Context
 		}
 	});
 }

事实上,可以用Lambda表达式 简写

        button1.setOnClickListener(v -> {
            //第一个参数是Context 上下文
            Toast.makeText(MainActivity.this, "Hello World!", Toast.LENGTH_SHORT).show();//活动本身就是一个Context
        });
自动导入包

发现报错无法运行 说找不到Button 这是因为我们没有import Button toast的包

可以设置 自动导入

活动 menu的使用

1,在res目录下 新建一个menu文件夹,再新建一个新的xml文件,在里面写menu的布局
2,回到MainActivity 然后重写OnCreateOptionsMenu方法,设置现实menu。重写方法可以用Ctrl+O快捷键
3,重写onOptionsItemSelected方法,在里面写逻辑。

详细看书 不难

intent

intent用于各组件的交互,可用于启动其他活动、启动服务、发送广播等场景

显式intent

1,新建一个FirstActivity 作为主活动,新建一个按钮
2,新建一个SecondActivity 做为次活动,不需要配置intent参数
3,重写方法

 button1.setOnClickListener(new View.OnClickListener(){ 
 	@Override
 	public void onClick(View v){
 		Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
 		startActivity(intent);
 	});
 }

.this代表对这个类实例的应用
.class代表对其他类实例的引用
class.this 和.class 是等价的

隐式intent 日志打印和gradle构建

用log 而非java的 syso 更方便 而且有快捷键
详细看书

安卓的引用


安卓使用的时候 会自动引入 res中的文件????

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/763593.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号