Android学习笔记

课程链接:
https://www.icourse163.org/course/0809NNZY001-1206134802?utm_campaign=share&utm_medium=androidShare&utm_source=#/info

  1. android studio常用快捷键
    logd
    用FindViewByMe代码生成工具,从布局文件生成java类代码

  2. 常用控件。
    textview,radiobox,checkbox,button
    view,是textview的父类,常用监听器有onClickListener

  3. 弹出窗口。
    popupwindows,alertdialog,customdialog,
    android.content.DiaglogInterface.OnclickListener弹出对话框的监听
    AlertDiaglog.Builder builder 建立对话框
    builder.show() 弹出

  4. activity。
    4.1 intent。显式和隐式2种
    4.2. activity传递数据
    方法1:
    activity传递数据方法1
    方法2:使用bundle传递一揽子数据。
    方法3: 带result的传递
    4.3 生命周期
    start,resume,pause,stop,destoy
    4.4 启动模式
    标准、singleTop、singleTask、singleInstance

  5. ListView和RecycleView
    RecycleView是ListView的可替换的新组件
    常用的数据适配器Adapter
    常用的监听器
    在这里插入图片描述
    RecyclerView下拉监听addOnScrollListener

RecyclerView可以显示多种ViewHolder,很灵活,
比如一个显示item列表,一个底部显示正在加载的进度提示,
但是必须在onCreateViewHolder、onBindViewHolder中区分不同的ViewHolder对象,
根据getItemViewType()区分。

使用布局管理器取得最后一行数据
recyclerView.getLayoutManager().findLastVisibleItemPosition()

SwipeRefreshLayout下拉刷新布局 + RecyclerView

  1. ViewPager和Fragment
    数据更新后,要notify通知UI线程(viewPager的适配器)。Adapter.notifyDataSetChanged();通知数据变化,更新UI。
    监听器:onPageChangeListener

Fragment
getSupportFragmentManager()管理对象
beginTransaction()事务对象,
然后可以add(),hide(),show()。最后commit()

TabLayout有Tab页的布局。
tabLayout.setupWithViewPager()把viewPager关联到tabLayout中

  1. 网络编程
    7.1 volley框架。(1、创建队列。2、创建request。3、把request加入队列)
    图片缓存。(1、创建队列。2、ImageLoader、ImageListener)
    Volley是一个Android网络通信框架。
    发生请求StringRequest(POST传数据/GET不传数据,uri,Response.Listener正确返回的监听,Response.error出错的监听)
    PostMan工具可以测试http api接口。浏览器一般测试GET请求,所以POST请求用PostMan.

7.2 json框架gson
添加Gson框架到工程中。
toJson()。bean对象转换为json字符串。
fromJson()。json字符串转换为bean对象。

www.json.cn在线json解析
JSONObject是{},JSONArray是[]。

java对象和Json之间的互转。类库有Jackson和Gson
fromJson可以反序列化为bean对象、List<对象>。反序列化List需要使用TypeToken getType(){}
在线JSON字符串转Java实体类。www.bejson.com

  1. DrawerLayout和NavigationDrawerActivity实现侧滑导航。

  2. Material Palette网站在线实现Google Material Design风格配色。

  3. Application系统组件。

  4. 小组件。。
    11.1 FloatingActionButton悬浮按钮。

11.2 SnackBar屏幕底部消息,类似于Toast。

11.3 ProgressBar进度提示,显示可见/隐藏

11.4 SpannableString实现有颜色的文字

11.5 SwipeRefreshLayout上拉监听setOnRefreshListener

11.6 cardview带圆角的卡片

  1. ImageLoader
    ImageLoader是一个加载图片的开源框架。单例模式ImageLoader.getInstance()
    显示图片display(uri,ImageVIew,MyApplication.DisplayImageOptions);DisplayImageOptions放的是一些设置项

  2. 打包APK在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  3. 数据存储

在这里插入图片描述

在这里插入图片描述
SharedPreferences主要存储key-value,保存为xml文件,一般用于保存用户账户等信息。

  1. XML解析

  2. SQLite
    SQLiteOpenHelper用于创建和更新数据库
    onCreate数据库第一次被创建时调用,创建表
    onUpgrade数据库更新时调用,如数据版本更新、增加表、修改表字段
    getWritableDatabase创建数据库操作对象
    getReadableDatabase读数据的数据库操作对象

在这里插入图片描述

在这里插入图片描述
SQLiteOpenHelper 中有两个抽象方法,分别是 onCreate()和 onUpgrade(),我们必须在自己的帮助类里面重写这两个方法,然后分别在这两 个方法中去实现创建、升级数据库的逻辑。

SQLiteOpenHelper 中 还 有 两 个 非 常 重 要 的 实 例 方 法 , getReadableDatabase() 和 getWritableDatabase()。这两个方法都可以创建或打开一个现有的数据库(如果数据库已存在 则直接打开,否则创建一个新的数据库),并返回一个可对数据库进行读写操作的对象。

Java类ContentValues储存键值对,用于数据库操作

  1. broadcast广播
    在清单文件中加入注册广播、过滤器
    BroadcastReceiver广播接收者onRecive方法
    注册广播有2种方式,常驻型和非常驻型。
    getResultData()获取用户拨打的电话号码
    setResultData()设置新号码到拨号盘

发送自定义广播
intent.setAction(str)自定义广播标识
sendBroadcast(intent)

无序广播(同时接收广播)和有序广播(顺序接收广播)
sendOrderedBroadcast()发送有序广播
清单文件Manifest.xml中定义广播接收器优先级
拦截广播abortBroadcast()
开机启动事件也是一个广播

(Object[]) intent.getExtras().get(“pdus”)pdus系统关键字,所有短信
SmsMessage.createFromPdu()短信转为SmsMessage对象

  1. service服务
    服务的创建、服务通信,服务的启动方式、生命周期
    启动服务Context.startService()或bindService()

Thread线程
Handler对象,用于主线程和子线程之间通信
handleMessage(Message msg)。msg.what判断哪个子线程传来的数据

远程服务通信通过AIDL接口实现。
AIDL默认public,通过IDE生成java文件
服务代理类继承外部的XXservice.Stub(内部通信服务代理类继承IBinder)
Manifest.xml中也要加过滤,写好包名

SeekBar进度条
监听器OnSeekBarChangeListener

  1. ContentProvider
    ContentProvider内容提供者,保存和检索数据,不同app共享数据的接口
    uri对象标识内容提供者
    uri.parse(String str)
    uriMatcher辅助工具类用于匹配uri

内容观察者ContentObserver内容变化的监听
onChange()方法

ContentUris.withAppendedId(uri,id)在字符串后面附加id
getContext().getContentResolver().notifyChange(uri,null)通知数据变化

启动OnCreate时候,注册ContentObserver

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值