
Android
有关Android技术的博客
努力努力再努力@_@
KEEP CODING ......
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Android 持久化技术 SharedPreferences存储(写入与读取)
SharedPreferences是使用键值对的方式来存储数据的。当保存一条数据的时候,需要给这条数据提供一个对应的键,这样在读取数据的时候,就可以通过这个键把相应的值取出来。而且SharedPreferences还支持多种不同数据类型的存储。将数据存储到SharedPreferences种想要使用SharedPreferences来存储数据,首先需要获得SharedPreferences的对象。3种方法获得SharedPreferences对象:Context类中getSharedPrefere原创 2020-11-29 23:05:26 · 848 阅读 · 0 评论 -
Android 持久化技术 文件存储
瞬时数据瞬时数据是指那些存储在内存中,有可能会因为程序关闭或其他原因导致内存被回收而丢失的数据。持久化技术数据持久化数据持久化是指将那些内存中的瞬时数据保存到存储设备中,保证即使在手机、电脑关机的情况下,这些数据仍然不会丢失。持久化技术提供了一种机制可以让数据在瞬时状态和持久状态之间进行转换。Android系统主要提供了3种方式用于简单地实现数据持久化功能文件存储SharedPreferences数据库存储手机SD卡(前三种比较简单,这一种是比较安全)文件存储将数据存储到文件中原创 2020-11-28 21:12:01 · 145 阅读 · 0 评论 -
Android 使用本地广播
项目完整代码https://github.com/Phil-tom/Android-The-First-Line-of-Code/tree/main/Chapter5全局广播很容易引起安全性问题,为了能够简单地解决广播的安全性问题,Android引入了一套本地广播机制,使用这个机制发出的广播只能在应用程序内部传递,并且广播接收器也只能接收来自本应用程序发出的广播。本地广播的用法并不复杂,主要使用了一个LocalBroadcastManager来对广播进行管理,并提供了发送广播和注册广播接收器的方法。原创 2020-11-24 20:00:43 · 1015 阅读 · 0 评论 -
Android 发送自定义广播
Android 广播机制简介广播主要分为两种类型,标准广播,有序广播原创 2020-11-24 19:36:15 · 5710 阅读 · 0 评论 -
Android 接收系统广播 静态注册实现开机启动
项目完整源码https://github.com/Phil-tom/Android-The-First-Line-of-Code/tree/main/Chapter5/BroadcastTest动态注册的广播接收器可以自由地控制注册与注销,在灵活性方面有很大的优势,但是它也存在着一个缺点,即必须要在程序启动之后才能接收到广播,因为注册的逻辑是写在onCreate()方法中的。如果希望程序在未启动的情况下就接收到广播,就需要使用静态注册。让程序接收一条开机广播,当接收到这条广播时就可以在onRecei原创 2020-11-23 21:38:16 · 975 阅读 · 0 评论 -
Android 接收系统广播 动态注册监听网络变化
Android内置了很多系统级别的广播,我们可以在应用程序中通过监听这些广播来得到各种系统的状态信息。动态注册监听网络变化广播接收器可以自由地对自己感兴趣的广播进行注册,这样当有相应的广播发出时,广播接收器就能够接收到该广播,并在内部处理相应的逻辑。注册广播的方式有两种:(1)在代码中注册(动态注册)(2)在AndroidManifest.xml中注册(静态注册)创建广播接收器:新建一个类,让它继承自BroadcastReceiver,并重写父类的onReceive()就可以。当有广播到来时,o原创 2020-11-23 19:25:00 · 944 阅读 · 1 评论 -
Android 广播机制简介
Android中的广播机制很灵活,因为Android中的每个应用都可以对自己感兴趣的广播进行注册,这样程序就只能接收到自己感兴趣的广播内容,这些广播可能来自于系统,也可能来自于其他应用程序。Android提供了一套完整的API,允许应用程序自由地发送和接收广播。发送广播:利用Intent接收广播:广播接收器,Broadcast ReceiverAndroid中的广播主要分为两种类型,标准广播,有序广播。标准广播:一种完全异步执行的广播,在广播发出之后,所有广播接收器几乎都会在同一时刻接收到这条广播原创 2020-11-23 15:31:56 · 176 阅读 · 0 评论 -
Android 动态加载布局的技巧
使用限定符完整项目代码https://github.com/Phil-tom/Android-The-First-Line-of-Code/tree/main/Chapter4/FragmentTest修改avtivity_main.xmllaout/activity_main.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/原创 2020-11-21 15:46:19 · 404 阅读 · 0 评论 -
Android 探究碎片(四)体验碎片的生命周期
Android Activity 体验活动的生命周期完整项目代码https://github.com/Phil-tom/Android-The-First-Line-of-Code/tree/main/Chapter4/FragmentTest碎片的状态和回调运行状态碎片可见,并且它所关联的活动正处于运行状态暂停状态当一个活动进入暂停状态,与它相关联的可见碎片就会进入暂停状态停止状态当一个活动进入停止状态时,与它相关联的碎片就会进入停止状态,或者通过调用FragmentTransacti原创 2020-11-21 15:18:39 · 121 阅读 · 0 评论 -
Android 探究碎片(三)在碎片中模拟返回栈
完整项目代码https://github.com/Phil-tom/Android-The-First-Line-of-Code/tree/main/Chapter4/FragmentTest在Android 探究碎片(二)动态添加碎片中,通过点击按钮,添加一个碎片之后,按Back键会直接退出程序,怎样实现按下Back键退回上一个碎片?修改MainActivity,使用 transaction.addToBackStack() 将一个事务添加到返回栈中添加这个方法以后,点击Button按钮,将An原创 2020-11-21 14:33:16 · 201 阅读 · 0 评论 -
Android 探究碎片(二)动态添加碎片
Android 探究碎片(一)碎片的简单用法上篇文章讲了在布局中添加碎片的方法,不过碎片的强大之处在于,它可以在程序运行时动态地添加到活动中。新建another_right_fragment.xml新建AnotherRightFragment类修改activity_main.xml,将右侧碎片替换成FrameLayout中。FrameLayout,这是Android中最简单的一种布局,所有控件都会默认摆放在控件的左上角。MainActivity在代码中向FrameLayou里添加内容,从而实现原创 2020-11-20 18:51:51 · 443 阅读 · 0 评论 -
Android 探究碎片(一)碎片的简单用法
项目完整代码https://github.com/Phil-tom/Android-The-First-Line-of-Code/tree/main/Chapter4/FragmentTest什么是碎片碎片是一种可以嵌入在活动当中的UI片段,它能让程序更加合理和充分地利用大屏幕的空间,因此在平板上应用的非常广泛。碎片的简单用法新建左侧碎片布局,left_fragment.xml<?xml version="1.0" encoding="utf-8"?><LinearLayou原创 2020-11-20 16:30:41 · 175 阅读 · 0 评论 -
Andriod RecyclerView的应用 编写精美的聊天界面
完整项目代码https://github.com/Phil-tom/Android-The-First-Line-of-Code/tree/main/Chapter3/UIBestPractice在主界面中放置了RecyclerView用于显示聊天内容,EditText输入信息,Button用于发送信息。activity_main.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http:原创 2020-11-20 15:16:59 · 260 阅读 · 0 评论 -
Android RecyclerView(三)RecyclerView的点击事件
项目完整代码https://github.com/Phil-tom/Android-The-First-Line-of-Code/tree/main/Chapter3/RecyclerViewTest和LIstView不同的是,RecyclerView并没有提供类似于setOnItemClickListener()这样的注册监听器方法,而是我们需要我们自己给子项具体的View去注册点击事件。实际上,ListView在点击事件上的处理并不人性化,setOnItemClickListener()方法注册的原创 2020-11-20 12:00:42 · 1449 阅读 · 0 评论 -
Android RecyclerView(二)实现横向滚动和瀑布流布局
项目完整代码https://github.com/Phil-tom/Android-The-First-Line-of-Code/tree/main/Chapter3/RecyclerViewTestRecyclerView实现横向滚动ListView做不到横向滚动,RecyclerView可以。fruit_item.xml需要修改,在之前纵向滚动的时候,该布局里面的元素是水平排列的。如果实现横向滚动的话,该布局里面的元素应该纵向排列。<?xml version="1.0" encoding原创 2020-11-19 14:34:38 · 1292 阅读 · 0 评论 -
Android RecyclerView(一)RecyclerView的基本用法
ListView:如果不适用一些技巧来提升它的效率,那么ListView的性能就会非常差。ListView的扩展性也不够好,他只能实现数据纵向滚动的效果。RecyclerView不仅可以轻松实现ListView同样的效果,还优化了ListView中存在的各种不足。Android官方更推荐使用RecyclerView。RecyclerView的基本用法在dependencies闭包中添加,可以直接在Project Structure中搜索再添加implementation 'androidx.recy原创 2020-11-19 09:09:36 · 445 阅读 · 0 评论 -
Android ListView简单使用、定制ListView、提升ListVie的运行效率
完整项目代码https://github.com/Phil-tom/Android-The-First-Line-of-Code/tree/main/Chapter3/ListViewTestListView的简单用法数组的数据是无法直接传递给ListView的,需要借助适配器来完成(adapter)其中ArrayAdapter的使用比较简单ArrayAdapter的构造函数中依次传入当前上下文、ListView子项布局的id、以及要适配的数据。ArrayAdapter<String>原创 2020-11-18 21:53:20 · 255 阅读 · 0 评论 -
Android 基本布局LinearLayout、RelativeLayout、FrameLayout
LinearLayout-线性布局android:gravity:用于指定文字在控件中的对齐方式android:layout_gravity:指定控件在布局中的对齐方式需要注意的是:1、当LinearLayout的排列方向是horizontal时,只有垂直方向上的对齐方式才会生效2、当LinearLayout的排列方向是vertical时,只有水平方向上的对齐方式才会生效RelativeLayout-相对布局相对布局可以通过相对定位的方式让控件出现在布局的任何位置。layout_align原创 2020-11-18 07:57:03 · 254 阅读 · 0 评论 -
Android Progressbar是否可见,获取以及设置进度
项目源码:UIWidgetTesthttps://github.com/Phil-tom/Android-The-First-Line-of-Code/tree/main/Chapter3/UIWidgetTestQ:如何才能让进度条在加载完成后消失呢?Android控件的可见属性,所有的Android空间都有这个属性,可以通过android:visiablity进行指定。有三种值可选。visiable:表示控件是可见的,默认值。invisible:表示控件不可见,但它仍然占据着原来的位置和大小原创 2020-11-15 09:17:01 · 1004 阅读 · 0 评论 -
Android 启动活动的最佳写法
完整项目代码ActivityController 与 启动活动最佳写法https://github.com/Phil-tom/Android-The-First-Line-of-Code/tree/main/Chapter2/ActivityTestFirstActivity.java 部分代码@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);原创 2020-11-14 22:16:24 · 148 阅读 · 0 评论 -
Android 活动的启动模式
活动启动有以下四种模式:standard、singleTop、singletask、singleInstance项目完整代码https://github.com/Phil-tom/Android-The-First-Line-of-Code/tree/main/Chapter2/ActivityTest1、standardstandard是活动默认的启动模式,系统不会在乎这个活动是否已经在返回栈中存在,每次启动都会创建该活动的新的实例。每点击一次按钮就会创建一个新的FirstActivity实例,原创 2020-11-14 20:54:57 · 204 阅读 · 0 评论 -
Android DrawerLayout 监听事件简单应用
有的书上或者博客上写的是mDrawerLayout.setDrawerListener,不过Android Studio显示该方法已经被弃用,所以我选择了addDrawerListener。mDrawerLayout.setDrawerListener(new DrawerLayout.SimpleDrawerListener() { @Override public void onDrawerSlide(View drawerView, float sli原创 2020-11-14 10:10:21 · 2165 阅读 · 0 评论 -
Android Material Design实战
github完整源码https://github.com/Phil-tom/Android-The-First-Line-of-Code/tree/main/Chapter12/DrawerLayoutFirstTestMainActivity代码package com.zzz.drawerlayout;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.v原创 2020-11-14 09:13:14 · 230 阅读 · 1 评论 -
Android Activity 体验活动的生命周期
活动的生命周期Android中的活动是可以层叠的。每启动一个新的活动就会覆盖在原活动之上,点击Back键会销毁最上面的活动,下面的活动就会重新显示出来。返回栈Android是使用Task来管理活动的,一个任务就是一组存放在栈里的活动的集合,这个栈也被称作返回栈(Back Stack)。活动状态运行状态 一个活动位于返回栈的栈顶 暂停状态 一个活动不再位于返回栈的栈顶,但仍然可见(对话框形式的活动) 停止状态 一个活动不再处于栈顶位置,并且完全不可见 销毁状态原创 2020-11-13 13:23:57 · 309 阅读 · 0 评论