
Android基础
JUN_LLLL
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Android 报错:ERROR: SSL peer shut down incorrectly
ERROR: SSL peer shut down incorrectly。网上搜索大部分是说因为gradle版本不一致导致,需要下载最新的,正常FQ下载即可,但是我FQ之后发现还是没有解决,最后发现是下载的路径有问题,在build.gradle文件中: dependencies { classpath 'com.android.tools.build:gradle:3...原创 2019-10-09 11:12:51 · 362 阅读 · 0 评论 -
Androi 报错:android.content.res.Resources$NotFoundException: String resource ID #0x0
Caused by: android.content.res.Resources$NotFoundException: String resource ID #0x0错误原因:在setText()中使用了int型的参数pay.setText(getString(R.string.dollar)+getIntent().getIntExtra("Amount",0));发现即使使用了g...原创 2019-09-22 17:43:43 · 3190 阅读 · 1 评论 -
Android报错:Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)
Caused by:java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference一、id名大小写1、项目中遇到空指针异常,具体定位到Java文件,2...原创 2019-08-09 15:27:58 · 31752 阅读 · 3 评论 -
Android报错:Binary XML file line #23: Binary XML file line #2: Error inflating class LinerLayout
Caused by: android.view.InflateException: Binary XML file line #23: Binary XML file line #2: Error inflating class LinerLayout根据打印出来的错误显示,是因为某个布局XML文件的第23行出现问题,第23行嵌套的布局文件的第二行的LinerLayout出现问题,检查发现少了...原创 2019-06-30 12:55:46 · 6167 阅读 · 0 评论 -
Android 易忘知识点
1、listview没有执行getview,没有显示页面 通常出现的原因是getcount赋值为0,首先要保证确实有有效的数据传到了自定义的适配器里。因为如果getcount()的返回值是0的话,getview是不会被执行的。更多分析参考博客。2、app安装后首次启动白屏很久 暂时只是在调试过程中debug版本里有,打了一个release包,启动好很多。3、src属性和backgrou...原创 2019-10-24 15:35:24 · 192 阅读 · 0 评论 -
Android LayoutInflater(加载view)
一、概述将布局XML布局文件实例化为其对应的View对象,可以称为布局加载器。在Fragment的onCreateView方法、ListView Adapter的getView方法等许多地方都可以见到它的身影。二、使用1、获取实例第一种:LayoutInflater layoutInflater= (LayoutInflater) context.getSystemServ...原创 2019-09-12 11:01:11 · 3494 阅读 · 0 评论 -
Android View Animation(动画)
目录一、概述二、Tween animation1、介绍2、属性代码3、类型3.1保存其他动画元素的容器3.2淡入淡出动画3.3缩放动画3.4平移3.5 旋转3.6 通用属性3.7 调用方式4、Interpolators(插值器)三、Frame animation1、介绍2、属性代码3、代码示例一、概述动画...原创 2019-09-09 16:34:50 · 563 阅读 · 0 评论 -
Android DialogFragment(圆角失效和动画失效)
一、概述需求的效果如下二、实现过程:自定义dialog:public class PayDialogFragment extends DialogFragment implements View.OnClickListener { private NoticeDialogListener listener; public PayDialogFragment...原创 2019-09-08 15:53:38 · 2641 阅读 · 0 评论 -
Android 底部对话框(选择拍照方式)
一、概述项目中对于图片的上传需要一个底部的选择对话框,这里参考文章写了一个自己需要的对话框,效果图如下,参考文章二、实现Java文件: public void showSelectDialog() { bottomDialog = new Dialog(context, R.style.BottomDialog);//自定义样式 View c...原创 2019-09-05 11:58:55 · 1160 阅读 · 0 评论 -
Android Fragment回退栈管理(popBackStack)
一、概述在一个Activity+多个Fragment的回退处理,一开始使用传统的add加hide,show进行判断切换,这样对于同级fragment用着挺不错的,比如导航栏类似的功能,多个层级的回退就需要添加判断很不实用,所以用到了addToBackStack,popBackStack来实现。还有就是自己定义一个list来管理fragment,这个可以参考文章。hide和show的导航栏:...原创 2019-09-03 16:57:58 · 11231 阅读 · 3 评论 -
Android 退出确认弹窗(AlertDialog)
一、默认使用 AlertDialog.Builder dialog = new AlertDialog.Builder (MainActivity.this);//通过AlertDialog.Builder创建出一个AlertDialog的实例 dialog.setTitle("This is Dialog");//设置对话框的标题dialog.setMessage("Somet...原创 2019-09-03 10:50:51 · 4407 阅读 · 0 评论 -
Android EditText限制输入两位小数
一、概述发现输出产品价格的时候不能简单的设置android:inputType为number或者numberDecimal,因为这样不能输入小数或者小数位能够输入多个,这样不符合实际生活需求,所以只能限制输入两位。二、实现主要是借助addTextChangedListener进行监听输入文本框的内容,声明一个textWatcher来执行监听,前提是设置文本输入类型为: andro...原创 2019-09-02 11:56:46 · 3509 阅读 · 0 评论 -
Android 自定义搜索框(EditText)的搜索功能实现
一、概述使用menu配合searchview可以实现常见的搜索框,详细介绍使用参考文章,我自己的项目没有采用这种方式,使用EditText配合Button做了一个搜索的bar。实现效果如下:二、实现xml文件:(自定义内容和样式被移除), 主要是这两个代码实现系统输入法的搜索按钮android:singleLine="true",android:imeOptions="a...原创 2019-09-02 11:24:50 · 10056 阅读 · 0 评论 -
Android 拍照和获取相册
一,静态权限申请AndroidManifest.xml 内操作 <!--读写内存块权限--> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!--调用相机权限--> <uses-permission andr...原创 2019-08-29 20:43:08 · 746 阅读 · 0 评论 -
Android ListView notifyDataSetChanged()不刷新数据
一、错误代码今天使用listview刷新数据的时候,调用notifyDataSetChanged并没有刷新数据,看一下代码发现逻辑没有问题啊,每次修改之后刷新列表的时候,roomDatas获取数据,在调用notifyDataSetChanged。二、解决问题咋一看上面的没有问题,其实roomDatas每次都被赋值一个新的list对象,应该adapter的list应该也会发生变化。...原创 2019-08-29 10:21:15 · 2554 阅读 · 0 评论 -
android 通用Toolbar(Activtiy/Fragment)
一、基于Activity在的其他Activity只要继承于这个BaseActivity,实现抽象方法会实现返回操作,可以根据自己的需求把initBaseView里面的设置title和回退按钮的逻辑分离出来,比较更加通用一些。public abstract class BaseActivity extends AppCompatActivity { /** * 输...原创 2019-08-29 09:49:12 · 935 阅读 · 0 评论 -
Android Fragment 使用的坑
1、add,show,hide,replace方法针对在一个Activity中的某个Layout中切换Fragment,,无非两种方法:1)使用replace方法把原有的Fragment替换掉,会进行销毁和生成新的实例,如果旧Fragment无须再次使用,可以使用replace方法将其销毁2)使用hide和show方法,把已经添加过的Fragment再次显示出来,如果Fragment需...原创 2019-08-29 09:26:51 · 507 阅读 · 0 评论 -
Android 等间距布局
主要 使用 android:layout_weight="1"进行分配占比,但是需要设置android:layout_width="0dp"才能使用,配合Space分配间距,效果图如下:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_widt...原创 2019-08-27 22:16:03 · 2269 阅读 · 0 评论 -
Android RelativeLayout遇到的坑
1、布局的子控件对齐方式1.1、相对于父布局进行定位,可以组合使用android:layout_alignParentLeft;让一个控件 和父组件的左边对齐android:layout_alignParentTop;让一个控件和父组件的顶部对齐android:layout_alignParentRight;让一个控件 和父组件的右边对齐android:layout_alignPar...原创 2019-08-27 22:05:31 · 2774 阅读 · 0 评论 -
Android LinearLayout遇到的坑
1、子控件对齐方式当作为父layout的LinearLayout的属性为android:orientation="vertical" 的时候,android:layout_gravity="?"这里设为横向的时候才能生效。比如:left,right,center_horizontal等;当作为父layout的LinearLayout的属性为android:orientation="horiz...原创 2019-08-27 20:47:57 · 1706 阅读 · 0 评论 -
Android Button wrap_content不起作用
在Button采用自定义的形状shape的时候出现了wrap_content,整个Button高度还是很大,并没有刚刚包含内容,比如下面这样情况,参考文章得知,如果采用固定值和match是可以的,源码得知系统默认给button的最小值设置成了56dp,修改button的minheight为0即可 android:minHeight="0dp"...原创 2019-08-27 20:14:10 · 1012 阅读 · 0 评论 -
android:drawableRight Button或者EditText 超出范围
在设置右边图片的时候会出现超出方位的尴尬情况,比如下面的情况第一种是直接再在控件里面设置添加android:paddingRight=""第二种就是在对应的shape里面设置padding...原创 2019-08-27 17:03:57 · 337 阅读 · 0 评论 -
Android listview左滑删除
一、效果图这是swipemenulistview开源库的效果图,也是我们想要的效果,基于listview实现的,项目地址二、具体使用实例首先增加对此的依赖:dependencies { implementation'com.baoyz.swipemenulistview:library:1.3.0'}然后xml布局文件:<com.baoyz.swip...原创 2019-08-26 22:08:52 · 365 阅读 · 0 评论 -
Android fragment中 onRequestPermissionsResult不起作用
上一篇Android 动态获取权限中,在申请权限的时候需要onRequestPermissionsResult方法来判断时候开启权限,但是在Fragment使用过程中,需要获取摄像机权限出现这个方法不起作用的问题,找到两个解决方案。一、宿主activity需要重写在宿主activity中,一定要重写onRequestPermissionsResult并且带上下面这句话,不然fragment...原创 2019-08-25 21:41:39 · 1820 阅读 · 0 评论 -
Android 动态获取权限
一、权限申请方式静态申请Android6.0以前的系统(API < 23)采用的这种方式,只要用户在AndroidManifest.xml中注册了权限,安装APP后默认就获取了这些权限。动态申请随着系统的升级,Google也意识到静态申请权限的弊端,所以在Android6.0中,对权限进行了重新梳理,将权限分为普通权限和危险权限:正常权限:不会给用户隐私带来危险的权限...原创 2019-08-25 19:31:30 · 1149 阅读 · 0 评论 -
Android startActivityForResult用法
一、介绍当我们在第一个Activity打开第二个Activity时,第二个Activity关闭并想返回数据给第一个Activity时,我们就可以使用startActivityForResult进行传值。用到的几个方法介绍:1. startActivityForResult(Intent intent, int requestCode) requestCode:如果> =...原创 2019-08-16 12:00:04 · 26750 阅读 · 0 评论 -
Android MainActivity.this和this
1. Context和Activity的关系在很多地方需要用到Context这个类作为参数,我们一个是用 SomeActivity.this传递。在Android Doc发现,Activity是Context的间接子类,Context是Activity的间接基类。那么根据语法,Activity就是一个Context。2.类名.this这种语法在什么情况下会出现呢?一句话:内部类需要...原创 2019-08-15 09:20:53 · 562 阅读 · 1 评论 -
Android 定制输入框控件(清除功能/查看密码)
一、效果展示:二、ClearEditTextpublic class ClearEditText extends EditText implements OnFocusChangeListener, TextWatcher { /** * 删除按钮的引用 */ private Drawable mClearDrawable; /** ...原创 2019-08-14 20:17:26 · 598 阅读 · 0 评论 -
Android Shape使用
一、Shape简介Shape是可以使用xml定义的一下通用形状,详细用法参考官方文档GradientDrawable。文件位置:res/drawable/filename.xml(filename用来当作resource ID)资源引用:R.drawable.filename二、属性<?xml version="1.0" encoding="utf-8"?>&...原创 2019-08-13 21:26:54 · 329 阅读 · 0 评论 -
Android开发中的R文件
一、R文件当 Android 应用程序被编译,会自动生成一个 R 类,其中包含了所有 res/ 目录下资源的 ID,如布局文件,资源文件,图片(values下所有文件)的ID等。在写java代码需要用这些资源的时候,你可以使用 R 类,通过子类+资源名或者直接使用资源 ID 来访问资源。PS:添加资源的命名规则:资源文件只能以小写字母和下划线做首字母,随后的名字中只能出现 [a-z0-9_...原创 2019-08-07 15:07:01 · 11501 阅读 · 0 评论 -
Android中BroadCast与Activity之间的通信(一) 使用观察者模式Observer
观察者模式是定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变的时候,所有依赖于它的对象都将得到通知,并自动更新”,可以理解成多个观察者向一个被观察者订阅消息,当被观察者发生改变时通知相应的观察者去作自己的事情。Android 中的观察者 实现Observer接口,被观察者继承Observable类。1、被观察者类(ObservableObject)public ...原创 2019-07-17 16:18:03 · 873 阅读 · 2 评论 -
Android 布局文件中属性gravity与layout_gravity
1、定义gravity属性是用来设置控件中的内容的位置,layout_gravity属性是用来设置当前子控件在父控件中的位置。2、具体区别和实现参考layout_gravity和gravity的区别(一)参考gravity和layout_gravity的区别(二)参考gravity与layout_gravity的区别(三)3、特殊情况gravity设置的是控件内的内容,...原创 2019-06-30 22:01:56 · 589 阅读 · 0 评论 -
Android Json解析
JSON在Android中被广泛运用于客户端和网络(或者说服务器)通信,JSON的主要优势在于它的体积更小,在网络上传输的时候可以更省流量。但缺点在于,它的语义性较差,看起来不如XML直观。1、解析Object{"id":"5","version":"5.5","name":"Clash of Clans"} JSONObject jsonObject= new JSONObj...原创 2019-06-30 21:00:28 · 140 阅读 · 0 评论 -
IDEA、Android Studio 快捷键
1、Ctrl+P,可以显示参数信息 Params2、Alt+Insert可以生成构造器/Getter/Setter等(需要选中类名)3、Ctrl + O 重写方法 Override4、Ctrl+F7 可以查询当前元素在当前文件中的引用,然后按F3可以选择5、Ctrl+ Q 即可 (q是quick查询的意思)查看方法注释6、\** Enter方法参数注释7、Alt + E...原创 2019-06-30 16:38:03 · 206 阅读 · 0 评论 -
Android Studio Git使用
目录1、环境配置2、提交项目3、分支管理Git在协同工作中的重要性不言而喻,以前使用Git都是使用可视化的Sourcetree,鉴于Android Studio里面集成了Git的一些可视化操作,Android项目选择使用自带的,但是免不了需要配置环境。1、环境配置下载安装Git:Git 下载地址 ,然后File --> Settings --> Vers...原创 2019-05-30 00:00:18 · 484 阅读 · 0 评论 -
Android Intent的基本使用
一、Intent概述意图本身(一个 Intent 对象)是一个被动的数据结构,保存着要执行操作的抽象描述;在Android不同组件间 传递数据,是Activity、Service、BroadcastReceiver之间的通信载体。显式Intent:通过组件名指定启动的目标组件,比如startActivity(new Intent(A.this,B.class)); 每次启动的组件只...原创 2019-05-19 20:35:28 · 1249 阅读 · 0 评论 -
Android ViewPager几种使用效果
1、简单ViewPager效果演示2、PagerTabStrip效果演示3、TabHost效果演示4、TabHost和Fragment效果演示5、TabLayout和Fragment效果演示6、轮播图效果演示7、自定义切换效果演示------------------------------------...原创 2019-10-03 14:30:15 · 696 阅读 · 5 评论 -
Android Dialog 自定义样式遇到的问题
1、透明背景效果最近实现弹窗透明效果,直接在style设置android:alpha发现整体透明度都会发生变化,所以需要在代码中设置透明度可以实现效果。网上很多dialog.getWindow().setDimAmount(0.6f);我试了没有效果,使用dialog.getWindow().getAttributes().alpha =0 .6可以达到我的要求的效果。 &...原创 2019-09-25 22:29:57 · 639 阅读 · 0 评论 -
PopUpWindow 使用
一、概述项目中使用很多弹窗,大部分都是了AlertDialog,Dialog,DialogFragment还没用过PopUpWindow,这次有时间看一下相关知识,PopUpWindow 表示一个可用于显示任意视图的弹出窗口。弹出窗口是一个浮动容器,出现在当前activity的顶部。AlertDialog不能指定显示位置,只能默认显示在屏幕最中间(当然也可以通过设置WindowManage...原创 2019-09-12 13:54:24 · 296 阅读 · 0 评论