android
kaifukai
立志成为行业精英
展开
-
Kotlin学习笔记
1、判空符号? 表示当前对象可以为空,即可以 = null!! 表示当前对象不为空的情况下执行"?"加在变量名后,系统在任何情况不会报它的空指针异常。"!!"加在变量名后,如果对象为null,那么系统一定会报异常!?:作为条件过滤,代表如果为空怎么办 val roomList: ArrayList<Room>? = null if (roomList?.size ?: 0 > 0) { // 这一行添加了?: Log.d("TAG"原创 2020-12-01 17:19:15 · 141 阅读 · 0 评论 -
mac 下android studio连接不上mumu模拟器的解决办法
打开模拟器的设置,打开usb调试,把USB配置调到MTP即可原创 2020-09-03 17:56:09 · 1256 阅读 · 0 评论 -
activity中调用本地service中的方法。
调用bindService()方法时,要穿入一个conn对象,该对象中需要override两个方法,在onServiceConnected()方法中,可以获取binder对象,来完成对service对象的赋值,之后就可以通过service对象调用service中的方法了。 private ServiceConnection conn = new ServiceConnection() { @Override public void onServiceConnecte原创 2020-08-20 11:24:42 · 549 阅读 · 1 评论 -
关于glide或者其他方式加载网络图片,显示细节不完整的情况记录
加载网络图片时,一张较大的图片,在加载完成后,有部分细节没有显示,如某两条较细的线段,这可能是因为没有设置placeholder,就是没有设置默认加载的图片,原理不清楚,不过确实通过这种方式解决了问题,特此记录。...原创 2020-08-07 14:03:02 · 781 阅读 · 0 评论 -
Android PopupWindow 里面的padding无效
在修改style文件后,发现弹窗的padding属性无效,查找资料后发现是因为以下属性,去掉即可<item name="android:fitsSystemWindows">true</item>原创 2020-07-29 08:56:44 · 675 阅读 · 2 评论 -
更改recyclerview滑动速度
public static void setScrollSpeed(RecyclerView rv, int velocity){ try{ Field field = recyclerView.getClass().getDeclaredField("mMaxFlingVelocity"); field.setAccessible(true); field.set(recyclerView...原创 2020-06-29 11:58:48 · 801 阅读 · 0 评论 -
org.json.JSONException: End of input at character 0 of
response.body().string()这个方法只能调用一次,赋值给一个变量后使用String str=response.body().string();使用str去解析原创 2020-06-08 18:27:50 · 705 阅读 · 0 评论 -
Android Room的简单使用
1、指定版本号,实体类,注意extend RoomDatabase@Database(entities = {User.class}, version = 1)public abstract class AppDatabase extends RoomDatabase { public abstract UserDao userDao();}2、Application中初始化...原创 2020-03-04 15:47:49 · 506 阅读 · 0 评论 -
Android Room 数据库升级
1、修改版本号1–>2@Database(entities = {HomeDataBean.class}, version = 1, exportSchema = false)2、addMigrations,表明数据库、表的变动情况 Room .databaseBuilder(context, DatabaseConfig.class, DB_NAM...原创 2020-03-04 13:54:38 · 1455 阅读 · 0 评论 -
kotlin学习记录
1、常量和变量标识符:valvar2、实体类,bean:问题:@Parcelize无效android{ ... androidExtensions { experimental = true } ...}apply plugin: 'kotlin-android'apply plugin: 'kotlin-android-exten...原创 2020-01-07 16:18:15 · 117 阅读 · 0 评论 -
fragment +viewpager嵌套fragment空白
通过断点,发现新建 fragment 对象时,没有执行生命周期,找到原因:猜想可能是由于之前实例的fragment缓存,解决方案:清理掉fragmentmanager中的fragment缓存注意点:1、fragmentmanager在fragment中要用getChildFragmentManager()2、Transaction的commit方法有两个,要使用**commitNow()...原创 2020-01-02 17:02:28 · 191 阅读 · 0 评论 -
Android开发,问题记录
1、android TextView加载html 解决a标签链接无效关键在于setMovementMethodtv_test.setText(charSequence);tv_test.setClickable(true);tv_test.setMovementMethod(LinkMovementMethod.getInstance());2、popupWindow show()方法...原创 2019-12-31 13:21:07 · 220 阅读 · 1 评论 -
Lint found fatal errors
Android打包release版本时出现了这个问题:解决方案有两种(推荐第二种):1、关闭lint checkReleaseBuilds 的检查,在build.gradle中加入android {lintOptions {checkReleaseBuilds falseabortOnError false}}2、找到出问题的代码位置,改掉它首先找到这个repor...原创 2019-12-03 10:54:11 · 558 阅读 · 0 评论 -
boolean java.lang.String.equals(java.lang.Object)
解决Attempt to invoke virtual method ‘boolean java.lang.String.equals(java.lang.Object)’ on a null object reference问题:布局文件中用到<View>,要注意V大写,写成<view>就会报错...原创 2019-05-28 14:05:37 · 1181 阅读 · 0 评论 -
Android模拟器修改hosts文件完成本地API调用
在Android Studio 的terminal中输入以下核心指令即可:emulator -avd Nexus_5X_API_28 -writable-systemadb rootadb remountadb push E:/hosts /system/etc/hosts第一步,启动模拟器,注意这里需要指定writebale第二部,boot第三步,remount,这一步很重要,成...原创 2019-05-13 14:40:23 · 967 阅读 · 0 评论 -
Android集成Google+和FaceBook三方登录
FaceBook:https://www.jianshu.com/p/b30ef1c93366要注意在application中加入FacebookSdk.sdkInitialize(getApplicationContext());AppEventsLogger.activateApp(this);Google+:https://www.jianshu.com/p/908f0144f62...原创 2019-05-07 17:10:15 · 902 阅读 · 0 评论 -
解决'keytool' is not recognized as an internal or external command,operable program or batch file.有效方案
在获取SHA1码是遇到这个问题,解决方案:手动定位到keytool所在目录:C:\Program Files (x86)\Java\jre1.8.0_191\bin> .\keytool -list -v -keystore "C:\Users\doudou\.android\debug.keystore" -alias androiddebugkey -storepass andro...原创 2019-05-03 12:10:05 · 4592 阅读 · 0 评论 -
Android Room 数据库
删除表"drop table if exists " + TABLE_NAME删除数据不删表"DELETE FROM " + TABLE_NAME解决Schema export ErroSchema export directory is not provided to the annotation processor so we cannot export the schema.You ...原创 2019-04-04 15:38:07 · 3762 阅读 · 0 评论 -
Android面试题2019
https://juejin.im/post/5c8211fee51d453a136e36b0#heading-56这个写的相当不错原创 2019-03-08 18:27:45 · 4275 阅读 · 0 评论 -
Android 阿拉伯语适配
首先推荐一个链接:https://www.jianshu.com/p/d8cd294a5c31开始进入正题1、sdk要求: Android 4.2 即 SDK 172、四个重要属性:android:layoutDirection设置组件的布局排列方向android:textDirection设置组件的文字排列方向android:textAlignment设置文字的对齐方式get...原创 2019-02-26 11:58:07 · 4362 阅读 · 2 评论 -
colorPrimary、colorPrimaryDark、colorAccent
colorPrimary—导航栏颜色 colorPrimaryDark—通知栏颜色 colorAccent—控件选中后颜色原创 2017-10-09 12:13:35 · 299 阅读 · 0 评论 -
Android 在一个activity中关闭其他activity
1、问题:从ActivityA跳转到ActivityB,再从ActivityB跳转到ActivityC,在第二次跳转时既要关闭ActivityB也要关闭ActivityA,要怎么做到?1)首先,在ActivityA中定义一个变量 public static ActivityA a=null;2)在该Activity下的onCreate方法中赋值 a=this;3)在Activi原创 2017-09-30 14:19:38 · 2899 阅读 · 0 评论 -
Android如何在退出App时关闭整个应用程序
第一步:在基类中定义一个静态变量 public static boolean exit=false; 第二步:在基类中的onRestart方法里添加 if(App.exit){finish();} 第三步:在你要退出activity的地方加一句 App.exit = true;原创 2017-09-30 14:25:28 · 1260 阅读 · 0 评论 -
如何去掉String[]数组中的重复项
思路 1:用双重循环判断重复后去掉该项实现:转化为list外循环正序遍历,内循环倒序遍历,发现重复的remove掉。思路 2:将String[]转为list之后转为set,由于set会自动去除重复项,此时再转回String[]便可以实现去除重复实现: ` String[] relogins = AccountInfo.loadAllRelogininfo(context); List li原创 2017-09-30 15:12:23 · 9127 阅读 · 0 评论 -
修改menu字体颜色
在theme中加入这一行<item name="actionMenuTextColor">@color/text_color</item>原创 2017-10-18 10:29:52 · 1217 阅读 · 0 评论 -
Android annotation 使用注意事项
报错一: Error:(171, 10) 警告: Element onTypeResul(int,android.content.Intent) invalidated by OnActivityResultHandler说明: 在使用@OnActivityResult(requestcode)标签时,有时会报这样的错误,原因是requestcode的值的原创 2017-10-12 13:59:12 · 454 阅读 · 0 评论 -
android menu 遮盖标题栏解决方案
在theme中加入一条属性<item name="overlapAnchor">false</item>原创 2017-10-20 10:47:40 · 991 阅读 · 0 评论 -
百度地图Android,v4_5_0.so
最近使用百度地图实现了定位及查看周边活动的功能整理一下可用的资料。 一、位置监听及缩放级别设置 /** * 定位SDK监听函数 */ public class MyLocationListenner implements BDLocationListener { @Override public void onReceiveLocat原创 2017-11-03 11:21:40 · 308 阅读 · 0 评论 -
解决android7.0 popwindow设置showAsDropdown不显示在控件下方的问题
测量目标控件的位置,然后设置显示在固定位置即可private void showPpw(PopupWindow popupWindow) { if (Build.VERSION.SDK_INT < 24) { popupWindow.showAsDropDown(view); } else { int[] locatio原创 2018-03-01 16:50:16 · 4078 阅读 · 0 评论 -
导入module或三方自定义控件报错NoSuchFieldError
报错内容:java.lang.NoSuchFieldError: No field tv of type I in class L com/mic/adressselectorlib/R$id; or its 原因:没有找到“tv”这个id,可能是因为你的项目下有重名文件,造成一个名字多个id解决方案:不要专注于错误信息给定的重复名称,比如tv没有找到,去它所在的layout,查看一下layout...原创 2018-05-22 17:31:16 · 347 阅读 · 0 评论 -
关于setResult在ActivityA中收到的resultcode值为0的问题
问题:收到的resultcode为0,但是在setResult()方法中设置的值为2。解决方案:保证两点1、setresult时如果intent不携带数据,也就是data是null,这时候使用setresult(resultcode)而不是setresult(resultcode,intent)。2、setresult()要在finish()方法之前调用。原因猜想:是onactivityresul...原创 2018-06-14 15:03:28 · 1802 阅读 · 0 评论 -
git初始化
1、git init2、git add .3、git commit -m "first commit"4、git remote add origin https://github.com/imthinktwice/TestRepository.git5、git push -u origin master -f//强制推送,如果在git上边已经有readme文件时使用,使用前把rea...原创 2018-08-23 17:54:37 · 151 阅读 · 0 评论 -
Android实用三方框架,工具
1、带箭头气泡带箭头的Android气泡控件/容器类,支持在布局中通过自定义属性或代码进行丰富的定制,包括箭头朝向、箭头位置、气泡弧角、边线颜色、边线粗细、颜色填充、填充Padding等等地址: https://github.com/cpiz/BubbleView2、选择图片、上传图片支持从相册或拍照选择图片或视频、音频,支持动态权限获取、裁剪(单图or多图裁剪)、压缩、主题自定义...原创 2018-10-30 18:35:14 · 200 阅读 · 0 评论 -
Android自定义组合控件
步骤:1、编写布局文件2、确定需要自定义的属性,在value-attrs文件中命名相关属性并确定数据类型3、编写java文件、继承容器4、在布局中使用public class MyMenuView extends RelativeLayout { private ImageView my_menu_icon;//前边的图标 private TextView my_men...原创 2018-12-05 11:25:50 · 114 阅读 · 0 评论 -
Android自定义虚线绘制
两种方式:1、drawable文件夹下通过shape绘制;2、自定义控件canvas绘制;一、<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="line"> &a原创 2018-12-10 14:21:39 · 234 阅读 · 2 评论 -
Android录制或播放语音消息时关闭其他媒体播放
AudioManager am = (AudioManager) mAppContext.getSystemService (Context.AUDIO_SERVICE); am.requestAudioFocus(null, AudioManager.STREAM_MUSIC, AudioManager .AUDIOFOCUS_GAIN_TRANSIENT);原创 2017-09-29 13:50:40 · 2791 阅读 · 0 评论