EditText超出字数限制,给用户提示

当我们在Editext输入内容的时候,检测如果超过限制的长度无法输入内容,并且给用户提示。

首先我想到了下面的方法:


 

未经测试,个人觉得这种体验或许不是很好,或许会出现EdiText闪动。

 

其实我们可以用下面这种方法:

源码给Editext设置了过滤器,专门用来判断是否超出最大的字符长度,把这段过滤器取出来,在里面加上Toast提示,设置给Editext就可以了。


 

调用:


 

源码中该方法是这样的:


 

由此可见我们可以给Editext设置多个过滤器,例如过滤掉一些特殊字符,表情等等。

 

学习android有一个很重要的能力就是阅读源码的能力,很多问题都可以通过阅读源码找到解决方法。

转载请标明:http://77blogs.com/?p=554

参考链接:https://blog.csdn.net/qq_26411333/article/details/51647888

设置Editext的光标宽高与颜色

转载请标明 :http://77blogs.com/?p=555

在Editext的布局属性上加上

android:textCursorDrawable=”@drawable/cursor_shape”

cursor_shape如下:

 

事实证明:设置android:height无效,应该用padding的方法。

top设置为-2dp :让光标顶部下移2dp

bottom设置为-2dp:让光标底部上移2dp

这样子光标的高度就变小了4dp

 

从下面的源码可以大概看出原因:

 

 

支持scrollTo的RecycleView

文章链接:http://77blogs.com/?p=556

RecycleView内部没有帮我们实现ScrollTo的方法,不过帮我们实现了ScrollBy,我们可以通过ScrollBy自定义一个支持scrollTo的RecycleView。


 

 

TextView走马灯

转载请标明出处:http://77blogs.com/?p=557

设置textView走马灯形式显示:

给Textview设置以上的属性,android:ellipsize=”marquee”便是指定超出范围的时候以跑马的形式显示(注意上面的属性是只有在内容超出TextView宽度时候才有效果)。

不能用max_line属性,要用singleLine属性。

别忘了在activity里面让TextView去获取一下焦点:TvTitle.requestFocus()。

Android apk安装时出现“解析软件包错误”

链接:http://77blogs.com/?p=558

有时候在安装apk的时候会出现解析软件包出错

 

(Android studio)解决方法如下:

关闭Instant Run功能:

File-Settings-…看下图:

将红色框内的勾取消。

 

如果还是不行,那么便在工程的gradle.properties里添加 android.injected.testOnly=false

Android Studio调试手机或者安装APK的时候出现install failed test only

转载标明:http://77blogs.com/?p=561

1、检查\app\src\main\AndroidMainfest.xml中是否有testOnly属性为true,如果有去掉或者改为false

2、检查Android Studio和gradle版本是否为alpha版本,换为稳定版本

3、检查是否关闭Instant Run功能,关掉此功能

4、检查是否使用alpha版本的依赖库,换成稳定版本

5、如果以上均无法解决,就在gradle.properties文件中添加android.injected.testOnly=false

 

一般情况下3、5两个一起执行就Ok了。

 

关闭Instant Run功能的具体方法如下:

File-Settings-…如下图:将红色框内的箭头取消