Android应用开发
陌sr,
A android coder,
展开
-
Android RecyclerView item视图 、动态添加View时视图宽度问题
一、场景:当我们在RecyclerView 或者 动态给View添加视图时会使用 LayoutInflater 将视图布局解析成View,然后添加到根布局中。LayoutInflater inflate方法使用不当就会导致视图宽度有问题,比如inflate的布局中给定了宽高,但是最终展示还是充斥整个布局。或者出现java.lang.IllegalStateException: The specified child already has a parent. You must call removeVi原创 2022-03-24 10:45:49 · 4945 阅读 · 0 评论 -
Android12 Apk安装适配/安装失败解决
问题:Android12系统Apk出现安装失败-22或者安装失败-127 分析:As of Android 12, android:exported must be set; use true to make theactivity available to other apps, and false otherwise. For launcheractivities, this should be set to true.翻译过来:从 Android 12 开始,必须设置 android原创 2022-01-25 11:18:15 · 14064 阅读 · 7 评论 -
getBackground().setAlpha 背景色问题
mView.getBackground().setAlpha(0)问题:设置View背景透明度为0后,整个项目中使用color资源文件中和mView使用相同颜色(例:@color/_FFFFF)的View背景都会变成透明的。Android 5.0以后,部分机型会出现变成透明了,也就是用此方法会导致其他共用一个资源的布局,透明度也跟着改变。解决:1、mView.getBackground().mutate().setAlpha(0); 2、mView.setAlpha(0); ...原创 2021-07-29 17:02:14 · 296 阅读 · 0 评论 -
ScrollView 嵌套RecyclerView问题汇总及解决办法
一,移除数据时item被移除,但item所占布局空间依然存在问题原因:ScrollView 嵌套RecyclerView,RecyclerView会在加载时把全部数据显示出来,RecyclerView的复用机制失效,notifyItemRemoved不会重新计算布局。解决: mDatas.remove(mViewHolder.getAdapterPosition()); notifyItemRemoved(mViewHolder.getAdapterPosition()); //通知Recycle原创 2021-07-06 16:34:59 · 947 阅读 · 0 评论 -
SpannableStringBuilder setSpan方法相关问题记录
Q:一、自定义ReplacementSpan时,设置span长度为整个文本,出现span不显示问题,span中的draw不回掉。问题代码:String mTxt="SpannableStringBuilder setSpan方法相关问题记录";SpannableStringBuilder mSpannableStringBuilder = new SpannableStringBuilder(mTxt);mSpannableStringBuilder.setSpan(new RoundedRecta原创 2021-04-25 16:04:26 · 415 阅读 · 0 评论 -
Android AsyncTask异步线程默认是串行
一、AsyncTask异步线程默认是串行?AsyncTask是Android特有的异步执行线程,本质就是Thread+Handler结合得产物,AsyncTask在Android更新的过程中修改过很多版本,从串行到并行又从并行改回了串行,所以在使用中希望并行执行任务的需要注意了,AsyncTask默认是串行执行,但系统也提供并行方法。二、并行方法:AsyncTask mAsyncTask = new AsyncTask();mAsyncTask.executeOnExecutor(AsyncTask原创 2021-04-25 15:06:01 · 315 阅读 · 0 评论 -
Android studio 编译时一直卡在Download maven-metadata.xml问题解决
maven { url 'https://maven.google.com/' name 'Google' }替换为:maven { url 'https://maven.aliyun.com/repository/google' }还不行:对应右边的源地址,全部换成左边的阿里云仓库地址99%能解决。阿里云仓库地址...原创 2021-03-27 18:27:51 · 3796 阅读 · 0 评论 -
Android Gson解析泛型及接口中泛型获取、接口泛型混淆相关问题
Gson解析泛型解析方式:一、应用场景:除接口外其他类,获取泛型类型,进行解析。混淆时需要keep 此类。泛型Type/Class获取Type t = mBaseEntity.getClass().getGenericSuperclass();Type claz = ((ParameterizedType) t).getActualTypeArguments()[0];Class c.........原创 2020-04-03 13:23:08 · 2044 阅读 · 4 评论 -
RecyclerView嵌套RecyclerView,滑动卡顿问题解决。
RecyclerView嵌套RecyclerView使用时,数据稍多一点就会出现滑动卡顿的情况,在性能好的机器上并不明显,但是在性能稍微差点的机器上Fling操作就会很明显的看出来卡顿的情况,掉了许久结合源码想了很多办法,布局优化,Adapter代码逻辑优化等等,效果都不明显。最终找到一个暴力点的办法,代码如下: mRecyclerViewMc.setItemViewCacheSize(200...原创 2020-03-23 22:44:39 · 5832 阅读 · 0 评论 -
Android 监听RecyclerView内部数据变化
RecyclerViewAdapter mRecyclerViewAdapter = new RecyclerViewAdapter(mListingDataList); mRecyclerView.setLayoutManager(new LinearLayoutManager(this)); mRecyclerView.setAdapter(mRecyc...原创 2020-03-16 23:17:36 · 4384 阅读 · 0 评论 -
利用Hashmap/HashSet,数据去重
一、重写存储对象的equals和hasCode, @Override public boolean equals(Object obj) { SMS sms = obj instanceof SMS ? (SMS) obj : null; return !TextUtils.isEmpty(phoneNum) && phoneN...原创 2019-12-11 17:19:54 · 1004 阅读 · 0 评论 -
java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid item position
异常:java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid item position 10(offset:10).state:21原因:SwipeRefreshLayout 与RecyclerView滑动产生冲突,导致的崩溃网上很多解决办法,Touch处理,自定义LayoutManager捕获异常,亲...原创 2018-10-31 16:44:09 · 2146 阅读 · 0 评论 -
Android 工作笔记(小知识点)---(持续更新,190314)
1、Edittext————》hint:提示的文字2、layout比重layout布局是 多个控件width与height都是填充父类时weight`表示的是该控件在布局中渲染的优先级,值越大优先级越低,默认值填写大点。3、设置文本颜色在Activity中设置文本颜色,背景色等常见背景色 最好用Android系统自带的颜色值android.graphics.Color.(WHITE//可选...原创 2018-10-08 17:32:17 · 234 阅读 · 0 评论 -
惯性滑动切换(Fling操作)
重写LinearLayoutManager类,配合v7包中的PagerSnapHelper 达成效果FlingLayoutManager:/** * Synopsis ${SYNOPSIS} * Author Mosr * Version ${VERSION} * Create 2018.08.28 15:52 * Email ...原创 2018-08-29 11:02:25 · 1020 阅读 · 0 评论 -
UncaughtException detected: java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid ite
RecyclerView:BugUncaughtException detected: java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid item position 12(offset:12).state:41 at android.support.v7.widget.RecyclerView$...原创 2018-06-13 10:29:01 · 1320 阅读 · 0 评论 -
A/art: art/runtime/mirror/art_method.cc:201] Failed to find Dex offset for PC offset 0x92419070(PC 0
Log :A/art: art/runtime/mirror/art_method.cc:201] Failed to find Dex offset for PC offset 0x92419070(PC 0x73dbc089, entry_point=0xe19a3019) in void com.tencent.tbs.sdk.extension.TbsSDKExtension.(and...原创 2018-03-02 10:47:28 · 926 阅读 · 0 评论 -
Android 最有效的管理软键盘开启、关闭
protected void showKeyboard(boolean isShow) { InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); if (null == imm) return; if (isShow) {原创 2018-01-29 16:05:32 · 5608 阅读 · 1 评论 -
Android退出APP 并杀掉相关的所有进程
代码如下: ActivityManager mActivityManager = (ActivityManager) AppApplication.getInstance().getSystemService(Context.ACTIVITY_SERVICE); List<ActivityManager.RunningAppProcessInfo> m...原创 2019-03-19 16:08:34 · 4826 阅读 · 1 评论 -
常用正则表达式———为了少搬砖
正则表达式,不仅java web 使用 平时在Android 或 IOS APP开发中都是很常用的,一个十分古老而又强大的文本处理工具,仅仅用一段非常简短的表达式语句,便能够快速实现一个非常复杂的业务逻辑。熟练地掌握正则表达式的话,能够使你的开发效率得到极大的提升。1 . 校验密码强度密码的强度必须是包含大小写字母和数字的组合,不能使用特殊字符,长度在8-10之间。原创 2016-10-21 16:23:53 · 395 阅读 · 0 评论 -
Android 如何开发指纹支付
一、为什么要指纹支付趋势,就这么简单。二、什么是指纹支付指纹支付是一种便捷的生物认证支付方式,它让用户摆脱繁琐的密码、短信认证,便捷性得到大大的提高。提高应用的易用性,使用率和用户留存率。三、怎么开发指纹支付初次接触肯定会很迷茫,Android厂商众多,机型繁杂,系统底层参差不齐。这也给广大Android开发人员带来很多适配问题。指纹支付的开发亦是如此,下面就来说说Androi.........原创 2018-11-22 14:04:05 · 3817 阅读 · 6 评论 -
Android 原生WebView访问使用iFrame网页问题(页面找不到了)
问题:项目使用原生WebView访问使用了iFrame的网页出现的问题,列表页使用iFrame跳转到淘宝客的地址,单独访问淘宝客地址是能够打开。但列表页跳转过去总是提示“页面找不到了”,尝试很多方法,最终发现是WebView对第三方Cookie支持的问题。解决: if (android.os.Build.VERSION.SDK_INT &gt;= Build.VERSION_...原创 2018-12-21 13:20:35 · 8279 阅读 · 1 评论 -
Android淘宝客链接自动跳转淘宝APP问题
项目中的是腾讯X5浏览器,发现淘宝客不能自动唤起淘宝APP,log后均是http/https请求,后来使用原生WebView,log发现淘宝客跳转会有一个tbopen://开头的地址,这才是真正唤起淘宝App的scheme地址。X5却是拿不到,综合考虑应该跟微信类似的屏蔽了外链的跳转,而淘宝这种大型App自然在过滤清单中,所以X5浏览器中找不到类似的scheme,故而只能换用原生WebView。...原创 2018-12-21 13:39:45 · 11669 阅读 · 2 评论 -
Android SwitchCompat OnCheckedChangeListener不同机型/API下的问题
SwitchCompat位于android.support.v7.widget下,比Switch 向下兼容性更好。在使用过程中,需要在转换过程调用接口,成功则保持当前的选中状态,否则切换另一种状态。但是调用setChecked方法后,监听器OnCheckedChangeListener都会收到通知。翻阅源码: /** * &lt;p&gt;Changes the che...原创 2018-12-10 17:08:27 · 864 阅读 · 0 评论 -
Android XML分隔线及左右边距添加
Android 含左右边距的布局分隔线XML写法效果图:写法:<?xml version="1.0" encoding="utf-8"?><layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <!--最底层背景--> <item andr原创 2019-01-09 15:57:01 · 1393 阅读 · 0 评论 -
一条完美精确匹配各种url网址的正则表达式
Android原生的文本框匹配不够完美,网上的大多不够完美。经过多次修改尝试,完善出了一条能够完美和精确匹配url的正则表达式,可匹配http、https、www、wap等等开头的网址(大小写混搭亦可)携带参数的(转码的、加密的),无限接近微信匹配精确度且速度快性能稳定。原创 2019-07-04 17:54:26 · 21905 阅读 · 4 评论 -
Android 5.0及以下部分机型onNewIntent不回调问题
测试机型:Huawei P8,EMUI 3.1,Android 5.0问题描述:MainActivity已位于前台顶端,通过使用startActivity方法携带Intent传递数据给MainActivity,发现MainActivity重onNewIntent没有回调,测试生命周期,发现onResume也未回调。解决办法:Intent 设置Flags:mIntent.setFlags...原创 2019-08-21 15:37:43 · 637 阅读 · 0 评论 -
android.os.TransactionTooLargeException问题总结
android.os.TransactionTooLargeException是java中一个运行时一场,由于Log一般并无详细应用层错误信息,所以当其产生时令众多开发者难以迅速找到问题发生的根源,一下总结了其可能发生的情况:1、onSaveInstanceState方法存储信息过多,导致超出Bundle容量。2、Intent 携带参数跳转时Bundle中存储了大量信息导致。3、ViewP...原创 2019-10-11 11:08:00 · 1303 阅读 · 0 评论 -
自定义Toast,防止层叠显示问题,和自定义Toast样式
做Android开的人都应该知道,Android原生Toast在短时间多次show的情况下会出现层叠和重复显示问题,即使APP整个进程被杀了,Toast还是会一直显示直至你最后一个Toast显示完,本文就是针对此问题给出了一个个人的解决办法,先看代码: public static void showShort(Context mcContext, String msg) { if (nul...原创 2016-06-17 13:51:05 · 787 阅读 · 0 评论 -
Util for PopupWindow(PopupWindow封装类)(update 2018/10/18)
**Code**/** * Synopsis ${SYNOPSIS} * Author Mosr * version ${VERSION} * Create 2017/8/8 9:56 * Email intimatestranger@sina.cn */public class PopupwindowUtil extends P原创 2017-09-04 09:50:36 · 712 阅读 · 0 评论 -
收到短信自动获取其中包含的验证码---工具类(Update 2017/9/26)
**Code**/** * Synopsis ${SYNOPSIS} * Author Mosr * Version ${VERSION} * Create 2017/8/29 10:29 * Email intimatestranger@sina.cn */public class SmsUtil { private f原创 2017-09-04 10:10:40 · 1377 阅读 · 0 评论 -
PopupWindow setOutsideTouchable(false)无效问题完美解决方案
如题, setFocusable(false); 失败 (点击边缘区域的确不会关闭了,但是点击contentView部分 也没有响应了,所以必须让PopupWindow能够获取焦点)setTouchable(false);失败 (PopupWindow 不能接收Touch事件)完美解决方案: setFocusable(true);(可不设置,默认true)......原创 2017-11-29 11:09:44 · 6591 阅读 · 1 评论 -
还在使用 Synchronized同步?试试 Volatile 吧,让你的代码更高效
Synchronized运用synchronized关键字来实现同步块,大家都比较熟悉。为了避免多线程 同一时间 访问 同一方法或代码块时,方法产生和预期不同的结果,我们一般在这一方法或者代码块前使用synchronized关键字来修饰,从而保证方法或者代码块同一时刻只能有一个线程可以使用。synchronized 三大特性:地址 地址可见性:synchronized能够保证同步块原创 2016-12-09 14:47:14 · 561 阅读 · 0 评论 -
ScrollView自动滚动问题解决方法
项目中一个页面用刀Srcollview,页面有分享到QQ功能,意外发现分享成功后回到原APP,ScrollView自动滚动......解决办法重写scrollview中的computeScrollDeltaToGetChildRectOnScreen方法,并将其返回值设为0即可。@Override protected int computeScrollDelt原创 2016-12-05 14:32:24 · 1442 阅读 · 0 评论 -
汇总——TextView使用Glide极速加载HTML复文本中的图片
一、TextView中HTML文本的显示显示普通HTML文本TextView.setText(Html.fromHtml(reasonstr, null, null));显示带图片的HTML文本TextView.setText(Html.fromHtml(reasonstr, imgGetter , null));二、HTML文本中图片的异步加载Android 4.0以后的最大原创 2016-11-17 16:22:07 · 2125 阅读 · 0 评论 -
Android 微信分享开发问题汇总
申请应用的时候要填一个签名,这个签名是由应用的签名文件keystore决定的,那么你在填这个签名的时候,一定要把你的应用用正式的keyStore生成apk,安装到手机,然后用微信提供的获取应用签名的apk工具获取你应用的签名,然后这会生成的这个签名才是正确的,千万记得,不要使用dubug的ketStore测试,不然后面虽然可以修改,修改了后要审核,但是审核也是需要时间的,会很麻烦。还有原创 2016-10-28 17:17:05 · 1422 阅读 · 0 评论 -
pull解析WebXML
从http://www.webxml.com.cn获取城市的天气,并解析,提供两种方法一、常规Android 原生http请求WebXml官网Manifest 记得添加网络请求权限,private static String url = "http://ws.webxml.com.cn/WebServices/WeatherWebService.asmx/getWeat原创 2016-07-06 12:03:19 · 348 阅读 · 0 评论 -
pull解析一些特殊类型的XML文件
先来看看要解析的XML 北京 天津 上海 重庆 香港 澳门 沈阳 大连 鞍山 抚顺 本原创 2016-06-16 10:09:56 · 2565 阅读 · 0 评论 -
Facebook开源闪光控件(ShimmerForAndroid)使用
Demo地址Shimmer是Facebook提供的一项基于Java的library,它可以使Android中的所有View控件具有闪光的效果。API地址GitHub地址效果图用法:**Android Studio**// Gradle dependency on Shimmer for Androiddependencies { compile 'co...原创 2016-07-13 16:13:04 · 4216 阅读 · 0 评论 -
最快速读取手机通讯录中联系人信息
作为一名Android开发,读写手机通讯录的操作人人都会,但是有没有遇到通讯录存在好几百条联系人信息时候读取的速度会明显变慢呢?本文就是介绍解决办法,我总结出了以下几种办法 提供参考:一、线程有A、B两个Activity,想在B里面显示手机通讯录中所有联系人信息,可以尝试在A的时候就开起一个单独的异步线程,读取手机通讯录,然后再带到B Activity,这种办法呢标不治本,所以不推荐二、servi...原创 2016-07-01 16:22:49 · 11618 阅读 · 2 评论 -
Nispok——Snackbar(Ecliplse版)详解与使用
一、什么是SnackBarSnackbar提供了一个介于Toast和AlertDialog之间轻量级控件,它可以很方便的提供消息的提示和动作反馈。Snackbar是design support library中另一个组件,使用Snackbar我们可以在屏幕底部(大多时候)快速弹出消息,它和Toast非常相似,但是它更灵活一些。当它显示一段时间后或用户与屏幕交互时它会自动消失。可原创 2016-07-12 09:36:37 · 899 阅读 · 0 评论