- 博客(123)
- 资源 (7)
- 问答 (1)
- 收藏
- 关注
原创 TabLayout关联ViewPager后不显示文字
当使用addTab()方法给tablayout动态添加文字时可能会出现不显示标题文字的问题,而真实情况并不是不显示文字,而是ViewPager又给TabLayout加了许多空的标题,导致之前手动添加的标题被挤到后面,不信你多往后翻一翻是不是就出来了。那么这些空的标题是如何产生的呢,通过分析TabLayout源码很快就查出这个问题,其中有个方法的代码是这样的:private void populate
2017-06-07 18:51:08
5374
原创 ListView只能显示第一个item问题(ScrollView嵌套ListView)
如果是新手朋友,那么请先检查你创建adapter的地方是不是有错误。没错的话那么出现这个问题一般是在scrollview中使用了listview导致,因为scrollview无法正确计算listview的高度。它不能计算,那么只能靠我们自己了,超简单。下面是公司最近做的一个爱屁屁,要在scrollview中使用listview,为了正常实现功能,我们来自定义一个listview,重写它的onMeas
2016-10-12 10:01:27
1997
原创 Android图片添加阴影效果的两种方式
给图片添加阴影效果,这是很常见的需求。第一种方法是自定义drawable,使用layer-list定义两个图片,代码如下:show_view.xml:<?xml version="1.0" encoding="utf-8"?><layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <!-- 阴影图片,a
2016-07-16 12:36:37
45925
2
原创 dialogfragment监听返回键
在dialogfragment中使用onkeydown方法是无法监听返回键的,正确方法是令dialogfragment继承DialogInterface.OnKeyListener接口,重写onkey事件即可:public class MyFragment extends DialogFragment implements DialogInterface.OnKetListener{ @Ov
2016-05-31 07:53:28
10713
7
原创 Android发送短信解决字数限制问题
使用sendTextMessage发送短信会有70字限制,超过字数会自动拆分,接收方收到的是拆分后的短信,严重影响阅读。解决办法是,超过70字时使用sendMultipartTextMessage发送,这样虽然也是拆分发送,但接收方收到的是一条完整的短信。if(message.length() > 70){ //拆分短信 ArrayList<String> phoneList = s
2016-05-18 09:02:13
4796
2
原创 Android Studio2.0引入so文件(亲测)
步骤如下: 1、如图,直接将so文件放在libs目录下:2、在build.gradle中配置SO文件:sourceSets { main { jniLibs.srcDirs = ['libs'] }}如下图:
2016-05-07 16:24:23
1834
原创 解决ADB server didn't ACK(亲测)
无法真机调试,一般导致这个错误是端口被占用,使用命令查看5037端口是否被占用:netstat -ano | findstr "5037"结果如下: 可以看到该端口被PID为1984这个进程占用,在任务管理器中找到这个进程关闭即可
2016-04-29 16:16:05
686
原创 解决FileOutputStream中文乱码问题
使用FileOutputStream反序列化可以直接向文件写入文本内容,代码如下:FileOutputStream outStream = new FileOutputStream(file);outStream.write(str.getBytes());outStream.close();但这里的字符串如果包含中文,就会出现乱码,这是因为FileOutputStream是字节流,将文本按字节
2016-03-24 15:44:26
90277
7
原创 vimdff cannot read or write temp files
使用diffsplit比较文件时出现这个错误,解决方法是修改_vimrc文件,找到这一行:if &sh =~ '\<cmd'如下图,将单引号修改为双引号即可:
2016-03-23 11:41:56
879
原创 eclipse安装vim插件
工具栏,Help->Eclipse Marketplace,搜索vim,如下图,点击“Install”安装即可:
2016-03-19 11:21:10
2113
1
原创 vsftpd: not configured for standalone, must be started from inetd
linux下安装vsftpd时,输入命令sudo /usr/sbin/vsftpd启动vsftpd时,出现vsftpd: not configured for standalone, must be started from inetd提示。解决: 1.打开/etc/vsftpd.conf文件,如下图,将“listen=NO”改为“listen=YES”,保存; 2.输入命令sudo /us
2016-03-15 22:58:32
8861
原创 Android旋转屏幕时阻止activity重建
Android在旋转屏幕时activity会被重建,重新调用activity的各个生命周期,如果不想重建,那么需做如下设置:android:configChanges="orientation|screenSize"orientation选项指在屏幕方向发生改变,screenSize选项指屏幕尺寸发生改变,由于旋转屏幕时屏幕尺寸会发生变化,所以必须设置screenSize选项。activity不被重
2016-03-14 09:14:17
2847
转载 一文看懂大数据的技术生态圈,Hadoop,hive,spark都有了
本文为转载,出处:http://www.36dsj.com/archives大数据本身是个很宽泛的概念,Hadoop生态圈(或者泛生态圈)基本上都是为了处理超过单机尺度的数据处理而诞生的。你可以把它比作一个厨房所以需要的各种工具。锅碗瓢盆,各有各的用处,互相之间又有重合。你可以用汤锅直接当碗吃饭喝汤,你可以用小刀或者刨子去皮。但是每个工具有自己的特性,虽然奇怪的组合也能工作,但是未必是
2016-03-10 18:15:04
1792
原创 Android studio启动后卡在refreshing gradle project(包解决)
这个问题几乎每个刚使用Android studio的同学都会碰到过,网上有各式各样的方法,有的说使用本地gradle,我试过多次,每次启动Android studio时还是会检查更新,所以根本上解决的办法就是阻止它更新。其实道理很简单,找到工程里面自动更新请求的地址,把这个地址替换下就好了,不过这个简单的事儿还需要很多动作才能完成。第一步,要自己下载gradle,地址:点击下载gradle
2016-01-19 17:51:23
71698
3
原创 Android ListView控件使用
ListView控件显示列表有两种方式,直接使用数组资源或者使用ArrayAdapter类,下面一个简单的工程实现了这两种方法。ArrayAdapterList类:public class ArrayAdapterList extends Activity{ @Override protected void onCreate(Bundle savedInsta
2016-01-01 16:41:55
1022
原创 Java创建文件并写入字符串
Java创建文件并写入字符串,如果文件存在则只写入字符串。String sourceString = "sourceString"; //待写入字符串 byte[] sourceByte = sourceString.getBytes(); if(null != sourceByte){ try { File file = new File(path); //文件路径(
2015-12-31 10:27:19
23354
原创 android绘制几何图形
效果图:代码(仅绘制类,不可直接运行):public class MyView extends View{ public MyView(Context context, AttributeSet set) { super(context, set); } @Override // 重写该方法,进行绘图 protected void onDraw(Canvas ca
2015-12-22 16:41:44
1119
原创 java的File.separator
Windows下的路径分隔符(\)和Unix下(/)是不一样的,在开发跨平台应用时,如果直接使用绝对路径会出现错误,使用File.separator方法可解决此问题,使用方法如下:路径:D:\path1\path2 代码:path = "D:" + File.separator + "path1" + File.separator + "path2";
2015-11-18 16:38:22
2630
原创 优快云博客添加加QQ好友按钮
首先进到QQ推广网站(点击进入)选择推广工具选择样式及提示语:然后复制生成的代码(没有生成就多刷新几次),进入自己的博客管理页面选择“博客栏目”,将代码粘贴到想要的位置,以我的为例是这样:但这时你选择保存会提示你“不允许使用外站图片”,那咱们就想办法把图片变成本站的呗,方法很简单,在QQ推广页面选择喜欢的样式图片右键另存到本地,再随便新建一篇博客,切换到markdown编辑模式,上传刚才保存的样式图
2015-10-31 12:24:32
1604
原创 JSON获取数组——读完你就读懂了JSON
JSON获取数组没有什么好说的,java里面直接使用json的JSONArray类即可:JSONArray strArray = mjson.getJSONArray("Array");但我们有时候获取的json结构往往不是这么简单的,例如下面: {“a”:1,”b”:2,”c”:{“d”:3,”e”:4,”f”:[{“g”:5,”h”:6},{“g”:7,”h”:8}]}} 解析后是这样(注意
2015-10-31 11:48:30
6872
原创 Android返回Home桌面
通过Intent实现,为Intent的action和category设置相应的属性,指定Home桌面为启动的activity,再启动即可。Intent intent = new Intent();intent.setAction(Intent.ACTION_MAIN);intent.setCategorty(Intent.CATEGORY_HOME);startActivity(inte
2015-10-28 14:25:58
1612
原创 android手游渠道接入业务+技术全讲解
整整三个月没更新博客了,这也是我开始正式工作的三个月,android开发虽然以前也接触过一点,但是过的时间太久了基本没印象了所以这段时间都在工作加学习,工作主要就是在做android渠道接入,接近两个月时间了感觉自己也算是比较有了一些心得了,终于可以写点东西了。 手游行业的火爆是不需要说太多了,除了忠实的游戏玩家,很少还有人守在电脑前玩PC游戏了,而很多我们耳熟能详的游戏诸如梦幻西游、热血传奇、穿
2015-10-06 20:54:42
3872
原创 android不是内部或外部命令,也不是可运行的程序或批处理文件
问题: 原因:没有配置好android sdk环境变量解决方法: (1)切换到android sdk下的tools目录,再运行android命令即可启动Android SDK管理器,我的android sdk目录为C:\Users\canfly\AppData\Local\Android\sdk,如图: (2)配置android sdk环境变量 第一步,在系统变量中创建ANDROID_H
2015-06-26 12:31:35
20452
9
原创 常见算法题:单链表二路归并
题目:现有两个递增的单链表L1和L2,设计一个算法将L1与L2的所有结点归并到递增的单链表L3中。要求:空间复杂度为O(1)。思路:本题可采用二路归并思路,但题目要求空间复杂度为O(1),因此不能复制结点,只能破坏L1和L2将结点插入到L3中。代码:void Merge(LinkList &L1,LinkList &L2,LinkList &L3){ LinkList *p=L1.head
2015-06-07 18:03:28
3516
原创 常见算法题:判断表达式是否是回文
题目:设计一个算法,判断用户输入的表达式中是否是回文(回文即左右对称的字符串)。思路:这道题与判断表达式括号是否匹配类似,可使用顺序栈来解决,区别是回文要求每个字符都要求匹配,因此将字符串全部入栈,再全部出栈,将最后一个字符与第一个字符比较是否相同,依次比较,若全部相同则为回文。代码:#include<iostream>#include<string>using namespace std;#
2015-06-07 14:44:56
1470
原创 常见算法题:判断表达式括号是否匹配
题目:设计一个算法,判断用户输入的表达式中括号是否匹配,表达式中可能含有圆括号、中括号和大括号。思路:建立一个顺序栈,当表达式中有左括号时将其入栈,当出现右括号时,将栈顶元素出栈,检查与当前右括号是否匹配。最后如果栈为空则表示该表达式中的括号是匹配的。代码:#include<iostream>#include<string>using namespace std;#define MaxSize
2015-06-05 20:44:59
27520
2
原创 静态函数库和动态函数库
静态函数库是在编译链接时,把库文件代码全部加入到可执行文件中,因此生成的文件比较大,而运行时也就不需要库文件了。Linux中静态函数库的后缀名一般为”.a”,windows中为”.Lib”; 动态函数库是在编译链接时没有把库文件代码加入到可执行文件中,而是将要调用的函数所在文件的和该函数在文件中的位置等信息链接进目标程序。Linux中动态函数库的后缀名一般为”.so”,windows中为”.dll
2015-06-03 03:04:57
1169
原创 cin>>和getline混用需谨慎
造成程序错误结果的原因是,用户输入完年龄后按回车结束输入,把“\n”留在了输入流里,而cin不会主动删除输入流内的换行符,这样换行符就被getline读取到,getline遇到换行符返回,因此程序不会等待用户输入。
2015-03-24 14:41:29
8946
6
原创 运算符重载函数的参数类型以及返回值类型
参数类型: 大家都知道运算符重载函数的参数类型必须是引用类型,这是为什么呢。拿我们最常用的赋值运算符重载来说,如果参数类型不是引用类型,那么传参时就需要一个对象的副本,将实参复制到形参,这种复制是浅复制,并不会为形参分配内存空间,这就导致如果类中有指针类型,形参和实参的指针就指向同一块内存,再调用析构函数时就会出错。返回值类型: 同理返回值类型也要是引用类型,因为调用赋值运算符重载函数时也会创建
2015-03-23 10:37:06
8977
1
原创 有符号int和无符号int的比较
int array[] = {1,2,3,4};#define TOTAL_ELEMENTS (sizeof(array)/sizeof(array[0]))int main(){ int d = -1; if(d <= TOTAL_ELEMENTS) printf("TRUE\n"); else printf("FALSE\n");}
2015-03-19 17:20:57
4580
原创 gridcontrol复选框功能实现(超详细)
博主这几天就准备离职了,以后不再做.Net开发,因此这应该是我写的最后一篇关于dev控件的博文,既然是最后一篇,那就写的详细一些,画个圆满的省略号......本文介绍gridcontrol如何实现复选框功能,网上有几篇这样的文章,但功能不够完善,按它做的还有问题,因此我就详细的介绍我的一下实现方法供大家参考。
2015-03-18 17:13:27
19977
4
原创 运算符优先级问题
使用左移一位代替乘以2的运算,是很好的方法,但在C/C++中“+”运算符优先级高于“<<”,因此会先进行加法运算再左移两位,得到结果4*n。
2015-03-16 22:48:19
805
iOS学习笔记
2014-05-30
java编程思想第四版
2013-07-19
【devexpress】求告如何关闭dev各个控件的右键菜单
2015-01-26
TA创建的收藏夹 TA关注的收藏夹
TA关注的人