pengwei's Picture

pengwei

0

227 posts

解决SuperListview不支持setOnItemLongClickListener问题

一直在项目中使用SuperListview,今天一起啊中发现居然不支持item长按事件,怎么办呢? 要么换掉SuperListview要么找找有没有替换方法 替换SuperListview改动代码略多,所以优先选择后者 通过查看SuperListview的源码,发现功能基本上都是由AbsListView实现的, 更加重要的是AbsListView是protest的,意味着我们通过继承可以使用这个对象。 下面就是我修改后的类 import android.content.Context; import android.util.AttributeSet; import android.widget.AdapterView; import com.quentindommerc.superlistview.SuperListview; /* * Created by pengwei on 15/8/20. * 解决SuperListview不支持Item长按事件 */ public class SuperListViewPlus extends SuperListview { public SuperListViewPlus(Context context) { super(context); } public SuperListViewPlus(Context

阅读全文...

android部分中文字乱码

原文:http://book.51cto.com/art/201112/306309.htm 中文汉字中出现少部分中文乱码。这种现象看起来很怪异,往往在开发过程中,读者都有可能这样操作了,但没有发现。这种现象是怎么造成的呢?先看例子程序。 实例: 读取文件的核心代码如下(为了测试多一些的汉字,本例将把很多汉字写在test.txt里放在assets文件夹下): ………………..省略部分代码……………… inputStream = this.getAssets().open("test.txt"); byte buffer[] = new byte[100]; StringBuffer sb = new StringBuffer(); int i = 0; while ((i = inputStream.read(buffer)) != -1) { sb.append(new String(

阅读全文...

限制EditText输入的最大字符数

在开发过程中,经常遇到需要限制输入框长度的问题,在提交的时候判断长度再提示用户是一种解决方案,但是体验远远不如直接在输入框内限制用户的输入字数,超出后就就不能再输入。 下面介绍下实现这个功能的几种方法: 方法一:在xml设置maxLength属性 * * 方法二:通过setFilters来过滤长度 editText.setFilters(new InputFilter[]{ new InputFilter.LengthFilter(20) }); * * 方法三:通过监听输入过程来控制光标位置 import android.text.Editable; import android.text.Selection; import android.text.TextWatcher; import android.widget.EditText; /* * 监听输入内容是否超出最大长度,并设置光标位置 * */ public class MaxLengthWatcher implements TextWatcher { private int maxLen = 0; private EditText editText

阅读全文...

[转]Android性能优化典范 - 第3季

原文地址:http://hukai.me/android-performance-patterns-season-3/ Android性能优化典范的课程最近更新到第三季了,这次一共12个短视频课程,包括的内容大致有:更高效的ArrayMap容器,使用Android系统提供的特殊容器来避免自动装箱,避免使用枚举类型,注意onLowMemory与onTrimMemory的回调,避免内存泄漏,高效的位置更新操作,重复layout操作的性能影响,以及使用Batching,Prefetching优化网络请求,压缩传输数据等等使用技巧。下面是对这些课程的总结摘要,认知有限,理解偏差的地方请多多交流指正! 1)Fun with ArrayMaps 程序内存的管理是否合理高效对应用的性能有着很大的影响,有的时候对容器的使用不当也会导致内存管理效率低下。Android为移动操作系统特意编写了一些更加高效的容器,例如SparseArray,今天要介绍的是一个新的容器,叫做ArrayMap。 我们经常会使用到HashMap这个容器,它非常好用,但是却很占用内存。下图演示了HashMap的简要工作原理: 为了解决HashMap更占内存的弊端,Android提供了内存效率更高的ArrayMap。它内部使用两个数组进行工作,其中一个数组记录key hash过后的顺序列表,另外一个数组按key的顺序记录Key-Value值,如下图所示: 当你想获取某个value的时候,ArrayMap会计算输入key转换过后的hash值,然后对hash数组使用二分查找法寻找到对应的index,然后我们可以通过这个index在另外一个数组中直接访问到需要的键值对。如果在第二个数组键值对中的key和前面输入的查询key不一致,那么就认为是发生了碰撞冲突。为了解决这个问题,我们会以该key为中心点,

阅读全文...

TextView显示两行加省略号

设置下面两个属性就好 这样如果超过2行就会只显示2行,而且后面加上省略号。2行以下不受影响。 如果三行加省略号: textview在多行情况下如何显示省略号

阅读全文...

通过gradle上传android library到jcenter

教程:http://blog.csdn.net/u013308121/article/details/46360703#plain 有些需要注意的地方 其中之一就是上一篇文章,不要把需要上传的library取名为library 传送门:Android上传开源库到jcenter的一些经验教训 1.如果报错如下: No value has been specified for property ‘packageName’. // load properties Properties properties = new Properties() File localPropertiesFile = project.file("local.properties"); if(localPropertiesFile.exists()){ properties.load(localPropertiesFile.newDataInputStream()) } File projectPropertiesFile = project.file("project.properties"

阅读全文...

Android上传开源库到jcenter的一些经验教训

把库成功上传到jcenter后(上传过程下篇文章介绍),出现了一个很奇怪的问题,明明成功上传,为什么在代码中应用报错了? gradle 引用代码 compile ‘com.apkfuns.logutils:library:1.0.0’ 报错的内容 Error:(63, 13) Failed to resolve: com.apkfuns.logutils:library:1.0.0 但是我确定jcenter已经上传成功,在jcenter库中能看到详细信息。 http://jcenter.bintray.com/com/apkfuns/logutils/library/1.0.0/   尝试了各种方法,比如在最后加上@aar之类的各种方法都没用 最后公司导师提示,才想到可能maven-metadata.xml和library-1.0.0.

阅读全文...

wordpress常用的路径函数

与WordPress打交道,经常遇到的一个问题就是获取路径,包括URL路径和服务器路径,在主题或插件中引用js或css文件需要URL地址,而include一些文件时则需要服务器路径。在WordPress中,不能认定wp-content目录一定位于/wp-content下,也不能认为admin的地址一定是/wp-admin,为了避免错误,了解WordPress中与获取路径相关的函数很重要。 http://www.solagirl.net/wordpress-path-related-functions.html

阅读全文...

android导出依赖包为aar,并引用

如果用jar打包只能包含class代码,不能包含资源文件,很多时候都不能满足使用需求,aar包解决了这个问题,可以把整个以来项目打包为aar,并且在多个项目中使用。 aar包包含的资源内容 打包方法: 我们先把想要打包成sdk的项目做成Android libraries(不要建成Android project) 直接运行就好了,就可以在项目的build->outputs->aar–>看到生成的aar文件 在项目中引用: 1、把打好的aar包拷贝到需要引用的Android工程libs目录下、 2、修改Android studio的gradle设置 allprojects { repositories { jcenter() flatDir { dirs 'libs' } } } 对项目添加依赖 dependencies { compile(name: 'app2', ext: 'aar') //引入app.aar包 }

阅读全文...