- 博客(29)
- 收藏
- 关注
原创 java8的接口新特性(可以有方法体的接口)
1.以前java的接口中定义的方法不可以有方法体,这样试用起来,有时候听不方便的,当有多个类实现了想同的接口,接口中某一些方法的实现体可能都是一样的时候,这样无疑浪费了很多时间,在写重复的代码(或者说copy); 2.现在java8中可以接口可以有默认的方法,直接贴代码:MyInterface.java:interface MyInterface{ String myNewName(Str
2015-11-13 11:11:31
8592
4
原创 golang不定参数
1.有时候想一个函数中传入的参数很可能是不定的,除了可以使用:func funcname(...interface{}){}2.也可以将许多参数放进一个数组中,然后作为参数传入函数(或许会觉得这样有点多此一举,但是很可能存在历史遗留问题):func funcname(args []interface{}){ fmt.Print(args...) //args...是将一个数组按顺序变成不定
2015-11-12 17:32:10
2171
原创 golang截取中文字符串
1.问题: 在golang中可以通过切片截取一个数组或字符串,但是当截取的字符串是中文时,可能会出现的问题是:由于中文一个字不只是由一个字节组成,所以直接通过切片可能会把一个中文字的编码截成两半,结果导致最后一个字符是乱码。 例如: 想要截取前四个字 name := "我是胡八一" fmt.Println("name[:4] = ",name[:4])执行后得到的结果会是这样的:
2015-11-12 16:25:48
13973
原创 iOS的UIButton和UILable
初始化UIButton和UILable对象,然后设置按钮的点击事件监听,改变UILable的值为当前时间;
2015-06-04 15:38:30
957
原创 java:生产者消费者问题
记得第一次做java的题的时候,看到“写出生产者消费者问题”,还以为是和工厂模式有关系。现在想想也是被雷倒了。 java的生产者消费者问题其实是讲多线程并发操作同一资源缓冲区,当资源缓冲区满的时候,线程继续添加数据,则应该使其等待,有空间时再发消息通知;当资源缓冲区没有资源,线程继续取数据时,应该使其等待,有资源是再发消息通知;
2015-04-11 16:37:44
996
1
原创 Android:关于Animation的几种常见的动画
适当的添加一些动画效果,能够获得更好的用户体验,这次讲讲一些常见的动画~ 如:透明动画,渐变动画等等。
2015-04-11 12:44:19
1708
原创 Android:通过ThumbnailUtils类获取视频文件的缩略图
在视频播放器上经常会看到,有很多的视频缩略图,本文讲的就是通过ThumbnailUtils类获取视频文件的缩略图;……
2015-04-09 16:15:31
1979
原创 Android:静态注册BroadcastReceiver
动态注册的广播接收器可以自由地控制注册与注销,在灵活性方面有很大的优势,但是它也存在着一个缺点,即必须要在程序启动之后才能接收到广播,因为注册的逻辑是写在onCreate()方法中的。那么有没有什么办法可以让程序在未启动的情况下就能接收到广播呢?这就需要使用静态注册的方式了。下面附上静态注册的代码:……
2015-04-06 21:58:00
651
原创 Android:静态注册BroadcastReceiver
由于动态注册BroadcastReceiver只能在Activity的onCreate()方法调用时才能注册再接收广播,所以当程序没有运行就不能接受到广播;但是静态注册的则不依赖于程序是否处于运行状态。当然动态注册的好处是,自由灵活。下面来看一下静态注册的代码吧:……
2015-04-06 18:00:30
3952
原创 Android:动态注册BroadcastReceiver
注释直接写在代码里,比较直观,我觉得这些定义系统的广播的宏,不是很好使;MainActivity.java:package com.vrinux.broadcastdemo;import android.app.Activity;import android.content.BroadcastReceiver;import android.content.Context;import andr……
2015-04-06 16:46:07
5634
原创 Android:SQLite的使用(一)
今天讲的是关于SQLite的使用:包括:1.创建数据库;2.创建表;3.插入数据;4.修改数据;5.删除数据;6.查询数据;
2015-03-23 15:26:16
1035
原创 Android:Service的非绑定式的创建和生命周期
Android的Service若使用非绑定式的创建,则创建后将无法再与它取得联系,即无法传递消息参数等;所以如果希望创建后仍然与其存在联系,那么可以参考我的前几篇博客《Android:Service的绑定和解绑定,Service与Activity通信》,其中讲到了Service的绑定和与Activity通信的相关内容(如题目o(^▽^)o)。 Service的非绑定式的创建非常的简单,和启动Act……
2015-03-14 23:30:45
1572
原创 Android:子线程向UI主线程发送消息
在Android里,UI线程是不允许被阻塞的,因此我们要将耗时的工作放到子线程中去处理。 那么子线程耗时处理后要怎样通知UI线程呢?我们可以在UI主线程中创建一个handler对象,然后通过重写其handleMessage(Message msg)的方法,该方法会接收到子线程中的handler对象的sendMessage((Message msg)发回来的消息。这样一发一收就完成工作;而关于主线程
2015-03-14 20:48:17
7464
原创 Android:主线程如何向子线程发送消息
今天讲一下,在Android中主线程如何向子线程中发送消息的问题。 或许回想无非就是创建一个Handler对象,然后一个线程发消息,另一个接收消息嘛…… 原理确实是这样,但是我们平时,是从子线程向主线程发消息,而主线程默认已经帮我们完成了Looper的操作,所以我们只需要简单的“创建一个Handler对象,然后一个线程发消息,另一个接收消息”…… 我们先说一下这个Looper是神马吧。
2015-03-14 16:50:48
4331
2
原创 Android:Service的绑定和解绑定,Service与Activity通信
先看一张原理图:1.先从Activity绑定Service,如果Service还没被创建,则Service会调用onCreate()方法,然后再调用onBind()的的方法; 2.然后onBind()的返回值通过实现了IBinder接口的对象传回给实现了ServiceConnection接口的对象的onServiceConnected()方法; 3.onServiceConnected()方法中……
2015-03-12 23:53:38
6201
原创 Android的异步线程AsyncTask的使用
我们都知道,Android的主线程不能做耗时处理,而子线程又不能修改主线程的UI组件;如果每次想要子线程通过耗时处理后再发送消息给主线程,让其修改自身的UI组件,显得比较繁琐;所以Android为我们提供了一个AsyncTask的类方便我们操作。 大多数时候,我们总能遇到这样的情款,当浏览从网络发来的数据时,文字加载的快,而图片加载的慢,所以不可能让全部加载完再显示给读者吧;因而可以将图片加载的用
2015-03-12 19:00:16
669
原创 Android:Actionbar的显示和隐藏
android在3.0的版本之后将Titlebar和menu和在一起,推出了Actionbar。现在Actionbar+fragment的组合很流行。今天讲一下Actionbar的显示和隐藏。界面很简单只有一个Button,添加一个事件监听,用于控制Actionbar的显示或隐藏。显示: 隐藏: ……
2015-03-10 21:46:24
3032
原创 Android的对话框(AlertDialog)
今天讲讲android的几种常见的对话框: 一.看一下运行截图: 1.普通的对话框:2.列表形式的对话框:3.加载自己写的布局文件的对话框:二.现在附上代码: 注释直接写在代码里了……
2015-03-07 14:54:21
786
原创 Android的fragment的生命周期及与Activity的生命周期的对比
单独的讲fragment的生命周期的意义并不大,因为其为Activity的一部分,所以必须和Activity的生命周期对比着看才能看出二者各个生命周期方法的调用顺序。因为fragment分动态和静态两种加载方式,所以会出现两种不同的方法调用顺序。 I.结果演示: 首先我们先来看一下运行结果(我用Log.i()输出每个方法被调用的顺序,Activity类和fragment类都使用同一个String……
2015-03-06 21:37:59
1316
原创 Android的Activity获取fragment和fragment的组件
一.获取fragment: 当fragment被提交之后,即可通过以下两种方法获取fragment: 1.findFragmentById(); 2.findFragmentByTag(String tag); 【fragmentTransaction.commit()提交fragment是异步处理的】二.获取fragment的组件: 1.重写onStart()方法或onResume()【……
2015-03-06 09:41:26
15896
1
原创 Activity与fragment之间的传值:fragment的setArguments()和getArguments()
当Activity类动态加载fragment时可以通过fragment的setArguments()传入值,并在fragment类中通过fragment的getArguments()方法获得传入的值; 下面演示一下代码:MainActivity.java:主要步骤(该步骤必须在fragmentTransaction.commit()之前完成):1.创建一个fragment实例2.创建一个Bun……
2015-03-05 19:46:05
26544
7
原创 静态加载fragment间的交互
现在以两个静态加载的fragment之间的交互为例; 想要实现的效果是:一个Activity中有两个fragment,其中fragment01中有一个EditText对象和一个Button对象;建立Button对象的事件监听,获取EditText对象的内容,然后发送给fragment02,并在fragment01的TextView对象中显示;如下图所示:实现原理:为了降低fragment之间的耦合……
2015-03-05 13:47:34
1823
原创 fragment动态加载
上一篇博客讲了fragment静态加载,现在来讲讲动态加载。 想要实现的效果是一个Activity中有两个button,下方是一个FrameLayout;当点击button,就会促发相应事件,并将对应的fragment页面加载到FrameLayout中。如下图所示: MainActivity.java: 【注意】FragmentTransaction不要设置为全局变量,否则,其commit()……
2015-03-04 23:07:32
1053
原创 fragment的静态加载
fragment是android中一个非常重要的内容,中文译名叫“碎片”或者“片段”,本人喜欢叫他“碎片”,感觉比较有台词的感觉。 现在演示一下fragment的静态加载。MainActivity.java 是否发现静态加载,不用写什么代码o(^▽^)o; 【注意】fragment不是控件,而是Activity的一部分(即“碎片”),所以不能通过findViewById()的方法获取……
2015-03-04 21:37:10
1780
原创 关于Activity的启动模式(一)
Activity的启动模式可分为两类:显性启动和隐性启动。一、显性启动(四大启动模式):0.设置启动模式:1.standard(默认的启动模式):standard是活动默认的启动模式 ,每当启动一个新的Activity,它就会在任务栈中入栈,并处于栈顶的位置。对于使用standard模式的活动,系统不会在乎这个Activity是否已经在任务栈中存在,每次启动都会创建该活动的
2015-02-17 15:48:35
639
原创 eclipse的adt+sdk配置
eclipse的adt+sdk配置经过五个月的等待,总算在这个突然变冷的春天迎来了android的课程,先前低落的情绪一扫而光,或许是android带给我的热情,或许是因为它,我才能找到培训的意义,又或者是给我真正想写程序的冲动,希望能学到更多的更新鲜的知识。虽然不是第一次接触android,也不是第一次搭建开发环境,但每次学习这些旧知识却也是总有所收获,或许就是所谓的温故而知新吧
2015-02-15 23:43:05
704
原创 关于android系统app设计的个人观点
android在使用的时候会出现卡顿,但个人觉得在硬件性能高度增长的时代,硬件已不再是主要矛盾,更重要的原因还是在于其系统和软件ui设计的问题,其中有相当大的一部分是心理上的“卡顿”,而非真正的卡顿。这种心理卡顿,其原因主要是因为,界面切换的先后顺序的不协调所致。举个例子:正常情况当点击输入框时,页面A先向上移动的同时输入法的界面在底部也向上移动,退出输入时输入框界面先向下移动并隐藏,上方
2014-12-13 22:54:28
880
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人