- 博客(46)
- 资源 (4)
- 问答 (1)
- 收藏
- 关注

原创 android——解决部分输入法监听回退键无效的问题
前些天测试部的妹子测出来一个奇葩的问题,使用android原生的输入法和华为的Swype输入法时,监听软键盘的回退键(删除键)竟然无效!搜狗输入法和百度输入法是正常的。先看一下原代码的写法:editText.setOnKeyListener(new OnKeyListener() { @Override public boolean onKey(View v, int keyC
2017-03-09 15:24:15
8043
3

原创 android 应用内页面,截屏监听
公司的项目由于安全需要,对某一特定的页面需要监听是否被用户截屏了。简单搜了一下,很少有这方面的问题,没办法,只能自己折腾了。目前想到两种思路:1、监听广播当然,前提是系统在截屏的时候发送某一广播,然而并没有。2、监听按键android手机按下“电源键+音量减”会进行截屏,此外大部分手机状态栏下拉的页面中也会有截屏按钮。遗憾的是,监听这两处的操作并不是一件让人
2016-05-20 19:03:10
9868
6
原创 从WebView获取图片的几种方式
微信在浏览网页的时候,我们可以选择长按图片,然后会弹出对话框,询问我们要做什么——保存啊,收藏啊什么的。恰好项目中要用到这个功能,就小做了一番研究, 各种找资料看博客浏览源码,总结了几种方式,特此记录一下。 首先是监听webview的长按事件,这个入口必须要实现,要不然怎么知道是那张图片呢。vWeb.setOnLongClickListener(new View.OnLongClick
2017-01-05 15:53:28
6654
原创 java 序列化实现对象的深拷贝
写java代码时,经常要实现对象的clone方法,处理对象的深拷贝问题。有一种简单的实现对象深拷贝的方法:将对象写入到字节流中,再读出来即可实现深拷贝。@SuppressWarnings("unchecked") public static T clone(T obj) { T cloneObj = null; ObjectOutputStream oos = null; Ob
2016-06-20 11:35:56
1822
原创 Android 开发,那些奇葩的问题
开发过程中,总会遇到一些让人棘手又意外的问题。代码明明”没有问题”,怎么就是不对呢?本帖就用来记录作者在开发过程中遇到的那些意想不到的问题。1、Intent中携带的数据错位了使用Intent携带数据再平常不过了,谁会想到这都会出问题。简单描述如下:Intent中携带的数据本来是"key1":"value1""key2":"value2""key3":"value3"
2016-05-12 11:50:39
2473
原创 WeakReference不影响引用计数
最近遇到一个问题,先看代码:ThreadUtil.exec(new Runnable() { @Override public void run() { DownAndUpLoadManager.getInstance().registerRateTaskListener(id, uri.t
2016-03-28 17:11:51
1293
转载 Java多线程-线程的同步与锁
一、同步问题提出线程的同步是为了防止多个线程访问一个数据对象时,对数据造成的破坏。例如:两个线程ThreadA、ThreadB都操作同一个对象Foo对象,并修改Foo对象上的数据。package cn.thread;public class Foo { private int x = 100; public int getX() { r
2016-03-24 10:47:41
508
转载 你真的了解AsyncTask?
虽说现在做网络请求有了Volley全家桶和OkHttp这样好用的库,但是在处理其他后台任务以及与UI交互上,还是需要用到AsyncTask。但是你真的了解AsyncTask吗?AsyncTask的实现几经修改,因此在不同版本的Android系统上表现各异;我相信,任何一个用户量上千万的产品绝对不会在代码里面使用系统原生的AsynTask,因为它蛋疼的兼容性以及极高的崩溃率实在让人不敢恭维。
2016-03-06 00:14:47
941
原创 android 拨打特殊字符电话号码
今天遇到了一个很难解的问题,简单说来就是拨打一个电话号码,打通后自动输入不同的数字命令。代码如下private void callout(String number) { if (!TextUtils.isEmpty(number)) { number = URLEncoder.encode(number); Intent int
2016-01-15 18:36:49
2427
原创 LinearLayout开头、结尾分割线显示错误
LinearLayout在布局文件设置分割线不仅方便,而且高效,对于布局来说十分重要。然而我在为LinearLayout设置分割线的时候却碰到一个问题,十分不解。先来看看是什么现象吧:布局文件如下:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="mat
2015-07-14 13:52:13
1667
转载 Android自由选择TextView的文字
用过EditText的都知道,EditText有个特点,当在里面长按的时候,会出现一个ContextMenu,提供了选择文字,复制,剪切等功能。有时候,我们会想,如果不出现这个ContextMenu,直接就在view上选择文字,那多美好啊。相信很多人抱有这样的想法,很不幸,我也是。于是我就研究了一下EditText和TextView的代码,然后将这个问题解决了。 网上很多资料都说,要
2015-06-11 20:51:26
3110
转载 java 定时器
在实际应用中,有时候我们需要创建一些个延迟的、并具有周期性的任务,比如,我们希望当我们的程序启动后每隔1小时就去做一次日志记录。在JDK中提供了两种方法去创建延迟周期性任务。TimerTimer是java.util包下的一个类,在JDK1.3的时候被引入,Timer只是充当了一个执行者的角色,真正的任务逻辑是通过一个叫做TimerTask的抽象类完成的,TimerTas
2015-06-10 20:05:38
543
转载 查询是否有符合条件的Activity
使用Intent来启动Activity本文地址: http://blog.youkuaiyun.com/caroline_wendy/article/details/21455141Intent的用途是绑定应用程序组件, 并在应用程序之间进行通信;startActivity(), 传递Intent参数, 创建并显示一个Activity;使用Intent解
2015-06-09 20:00:03
1192
转载 android log技巧
Android开发中,我们经常使用Log类来记录log信息,但是有时候我们输出的log信息太多,或者log中包含重要信息,这时候我们仅仅希望只在开发环境中才输出log,生产环境的安装包不输出日志,一个小技巧就是检测BuildConfig.DEBUG的值if (BuildConfig.DEBUG) {Log.v(tag, message);}这样我们的日志便只会在debug包下输
2015-06-08 16:35:20
679
原创 android studio 使用lint工具
lint工具是一款代码检查工具,打包前运行lint检查代码,可以帮助我们发现很多不易觉察的问题。网上有很多介绍使用Eclipse运行lint的博文,再次介绍一下android studio如何运行lint。1、File——Settings——Editor——Inspections打开检查项设置窗口:可以看到,有很多的检查项,现在我们设置如下:取消其他项,只保留了检查
2015-06-08 09:55:26
4574
原创 android NullPointerException RecyclerView.onMeasure
今天debug别人的代码,碰到这么个错误:网上查了查,碰到的类似的错误不是很多,再次记录一下。RecyclerView在onCreate的时候,要确定尺寸,需要执行:RecyclerView.setLayoutManager(new LinearLayoutManager(mContext));而我遇到的问题的原因是:setLayoutManager这个方法
2015-05-29 20:34:13
1689
转载 解决listview嵌套时的高度问题
/** * 只要在设置ListView的Adapter后调用此静态方法即可让ListView正确的显示 * 在其父ListView的ListItem中。但是要注意的是,子ListView的每个Item必须是LinearLayout, * 不能是其他的,因为其他的Layout(如RelativeLayout)没有重写onMeasure(), 所以会在onMeasure(
2015-05-21 11:38:50
758
转载 android上传文件到服务器的一个方法
public String fileUpload(String url, Map params, Map files // 形式 ) throws IOException { String BOUNDARY = java.util.UUID.randomUUID().toString(); String PREFIX = "--",
2015-05-21 11:34:42
435
转载 Android实战技巧:如何在ListView中嵌套ListView
前几天因为项目的需要,要在一个ListView中放入另一个ListView,也即在一个ListView的每个ListItem中放入另外一个ListView。但刚开始的时候,会发现放入的小ListView会显示不完全,它的高度始终有问题。上网查了下,发现别人也有遇到这样的问题,而大多数人都不推荐这样的设计,因为默认情况下Android是禁止在ScrollView中放入另外的ScrollView的,它
2015-03-12 14:39:40
1092
转载 将ImageView变成灰色竟是如此简单
ColorMatrix matrix = new ColorMatrix(); matrix.setSaturation(0); ColorMatrixColorFilter filter = new ColorMatrixColorFilter(matrix); imageview.setColorFilter(filter);
2014-10-30 16:43:03
2250
原创 android 获取日期12小时制、24小时制
SimpleDateFormat sDateFormat = new SimpleDateFormat("yyyyMMddHHmmss", Locale.getDefault());path += "/" + sDateFormat.format(new java.util.Date()) + ".jpg";
2014-10-29 18:31:24
1096
转载 adnroid常用的八种设计模式
一般来说,常用的android设计模式有以下8种:单例、工厂、观察者、代理、命令、适配器、合成、访问者。1、单例模式:目的是为了让系统中只有一个调用对象,缺点是单例使其他程序过分依赖它,而且不同单例运行在不同进程中,使得维护困难;2、工厂模式:生产固定的一些东西,如抽象类,缺点是产品修改麻烦;如喜欢动作片和爱情片的人分别向服务器发出同一个请求,就 可以得到他
2014-10-28 23:40:10
596
转载 onPrepareOptionsMenu 和onCreateOptionsMenu 的区别
在android中创建菜单menu时需要重写Activity的onCreateOptionsMenu(Menumenu)方法,这个方法只在第一次创建的时候调用一次,所以如果之后想对menu进行动态的修改,那么就不能再对onCreateOptionsMenu做什么手脚,就要用到onPrepareOptionsMenu(Menumenu)方法了。onPrepareOptionsMenu与o
2014-10-23 17:44:41
658
原创 菜鸟学android——正则表达式,替换
"[u]111111111[/u]"+ "[u]222222222[/u]"+ "[u]333333333[/u]"
2014-07-28 15:48:32
1254
原创 Eclipse——Failed to load the JNI shared library jvm.dll
重装了系统,结果原来的eclipse就发生了这个错误。。
2014-07-28 10:16:08
707
原创 菜鸟学android——获取listview某个item的view对象
网上查了查,发现这个问题很冷门,可现在又有这个需求,只好自己摸索一下了
2014-07-26 10:10:22
19737
转载 android/java 将数组加入list中
不良代码一 String[] str = {"1", "2", "3", }; List strArray = new ArrayList(); for(int i = 0; i < str.length; i++) { strArray.add(str[i]); }
2014-07-24 14:29:30
15966
1
转载 Android string.xml 展示特殊符号
Android string.xml 显示特殊符号项目中要在string.xml 中显示特殊符号,如@号冒号等,直接写肯定不行啦。。只能考虑使用ASCII码进行显示:@号 @:号 :空格 以下为常见的ASCII十进制交换编码: --> !-->!"-->"#-->#&#
2014-07-22 18:21:32
1234
转载 android 获得View的高度
在一个activity中有一个textview,设置字数不同,如何能在打开这个activity时就及时获得这个textview在activity的高度,有利于我对textview的高度进行设置。在onCreate函数中,View还未被展开,是无法获得高度的。所以可以对TextvView注册一个监听者:
2014-07-14 14:34:30
595
原创 菜鸟学android——webview改变背景色出现闪屏
将webview设置为背景透明后出现闪屏:webview.setbackground(Color.TRANSPARENT);
2014-05-30 11:13:41
3080
android开发,华为P7,调用系统发短信,传递2个电话号码会发生错误,其他个数不会
2016-05-12
TA创建的收藏夹 TA关注的收藏夹
TA关注的人