首先我们先直观上认识一下什么是EditText? 比如上面那正图片就是我截取的添加联系人的界面,很明显能输入文本的就是EditText。...上图是我截取的Eclipse中的Text Fileds的那部分, 很明显EditText分好多类, 比如直接的文本, 密码框, 数字框, Email框等。 其实它们也都是输入的类型不同罢了。...).toString(); if(valueString.length() > 11 || valueString.length() < 5) { textPhone.setError...; } } } }); } } 布局文件中有三个输入框, 一个是密码框, 一个是正常的, 一个是输入电话号码的。...,别的你们可以自动动手实验: 当我输入的数字长度大于11或者小于5的就会提示输入错误: 总结: 1:EditText是一种输入框,当然不止可以输入字符,也可以输入图片 2: 各种各样的输入框本质都是一样的
-- ---- 1.EditText 简单来说说EditText这个控件,这个就相当于我们平常web开发中的文本输入框,我们如果要使用EditText,可以在布局文件中声明一个这个元素即可,下面就是一个简单的...android:inputType,这个属性不仅可以指定键盘的显示类型,还能控制一些其他的操作,具体可以参考android的官方API,其默认属性是 android:inputType="text",...也就是普通的键盘框,如果我们设置其属性为以下这些,那么其键盘的类型会有所不同: EditText android:id="@+id/password" android...,inputType这个属性不会对我们输入的内容进行校验,如果我们要对输入的内容进行校验,我们需要在Activity里面进行操作 EditText有一个setError的方法,当调用这个方法时,则表示输入的数据不合法...这个方法会给我们一个错误的小图标以及弹出的一段错误提示信息,当我们的这个EditText控件获得焦点的时候,当我们在文本框中输入了任何的值后,这个icon和message都会消失,例如: ?
android中判断控件是否为空的地方非常之多,比如登录注册,只要是需要填写东西的地方基本上都需要判空。 难度不大,但是代码相对冗杂,如果集成框架的话就相对简单多了。...:layout_height="wrap_content" android:id="@+id/button" /> 3.获取对象并设置相应判断类型...R.id.button) Button button; @BindView(R.id.et1) @NotEmpty(messageResId = R.string.errorMessage)//类型...sendSubmit(); } @Override public void onValidationFailed(List errors) {//为空的时候执行...) { ((EditText) view).setError(message); } } } 5.调用 @
这个也只能在API21以上才能用各控制元件的预设颜色和colorAccent正好对应 在Style上设置 以上的颜色属性均是在 style 的属性中设置。...里面可以包含一个且只能有一个EditText,与传统的EditText不同,在输入时EditText的hint提示文字会滑到上方,在用户输入的同时提示用户当前要输入的是什么,同时还可以设置输入错误的提示信息...setError():设置当用户输入错误时弹出的错误信息。...特别注意:TextInputLayout不能单独使用,必须包裹EditView组件,且只能一个,设置错误提示信息时一定要先setErrorEnabled(true);再设置setError()。...这个系列的讲解和实例都会整理在一个demo里,demo的github地址:https://github.com/loonggg/MaterialDesignDemo 去star吧,我会慢慢完善的。
应用技术一),这篇也是上一篇的升级版,在我们日常写界面的时候,都想简单并且界面美观,这就少不了动画效果,MaterialDesign我们一般用到的动画,里面都有,不用我们自己写,在这个强大的库里,他都能够做什么呢...上滑 顶部背景图片缓慢消失,标题悬浮 在标题 上栏加入布局,放一些搜索框 输入框TextInputEditText的使用 1:上滑 顶部背景图片缓慢消失,标题悬浮 ?.../> 写到这里基本上完成了,代码少,效果好正是该库的强大,在Activity中的使用基本和上一篇是一样的。...TextInputLayout是22.2.0新添加的控件, 要和EditText(或EditText的子类)结合使用,并且只能包含一个EditText(或EditText的子类)。...Id是加在 TextInputLayout上,在Activity中获取也是获取的layout,那么怎么获取edittext输入的数据呢,有方法的。
android:attr/selectableItemBackground" item的水波纹效果,在item的View加上这一属性, 5.0+才行 includeFontPadding=“false”...” EditText修改软键盘的回车键 android:contentDescription="@null" ImageView去除缺少描述的警告 tools:text=“预览” 使用tools属性工具预览布局...android:largeHeap=“true” 给App增加更大的内存,AndroidManifest的Application 节点 TextUtils.isEmpty() 自带判空util TextView.setError...Linkify.addLinks() 在Text上添加链接。...() 强制让 Activity 重建 SparseArray Map的高效优化版本 isShown() 判断view是否显示 performClick() 模拟点击 TextWatcher 监听EditText
前言 EditText ,文本输入框,一个再熟悉不过的的控件,在开发当中,我们需要经常用到。这边文章,主要是记录 EditText 的常用用法,需要的时候可以直接复制张贴,提高效率。...输入数字的类型 decimal(浮点数),integer(正整数),signed(带+ -号的整数).注意:该属性在使用时提示已过时,建议使用android:inputType属性替代. android...password=“true” //以密文的形式显示输入的文本.注意:该属性在使用时提示已过时,建议使用android:inputType属性替代. android:textAlignment //设置...设置只接收指定的文本内容. android:phoneNumber=“true” //设置输入电话号码.注意:该属性在使用时提示已过时,建议使用android:inputType属性替代. android...//设置文本的类型,用于帮助输入法显示合适的键盘类型. android:maxLength //设置EditText最多接受的文本的个数. android:lines //设置EditText显示的行数
这些明显非常随意的行为,但实际上存在用户处理的信息可能被盗的隐藏风险。 这个风险与 Android 系统中的复制粘贴机制有关。 用户或应用复制的信息,曾经存储在称为剪贴板的缓冲区中。...在图 6.1-1 中,“输入类型固定为密码属性”表示,输入类型在应用运行时必须是以下三种之一。 在这种情况下,由于默认禁止复制/剪切,因此不需要采取对策。...另外,在“6.1.1 示例代码”的决策流程中描述,根据EditText的输入类型(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD...等),假设输入类型是密码,通常不需要任何对策,因为复制字符串是默认禁止的。...但是,如“5.1.2.2 提供以明文显示密码的选项(必需)”中所述,如果准备了【以明文显示密码】的选项,则在以明文显示密码的情况下,输入类型将会改变,并且启用复制/剪切。因此应该要求采取同样的对策。
本文链接:https://blog.csdn.net/carson_ho/article/details/100070713 前言 在Android开发中,当你梳理完需求后,你要做的并不是马上写下你的第一行代码...的压力,于是出现了MVVM模式 定义 VM层:ViewModel,即 View的数据模型和Presenter的合体 基本上与 MVP 模式完全一致,将逻辑处理层 Presenter 改名为 ViewModel...隔离度不够,同时写到Activity上使得Activity代码臃肿,于是出现了MVP: 隔离了MVC中的 M 与 V 的直接联系,将M、V层更加隔离开来,并释放了Activity的压力; MVVM模式的出现...* View接口:IfanyiView * 需定义在实现类中需要用到的方法 */ public interface IfanyiView { void init();//...保留了Model层的引用就可以将View层的数据传递到Model层 步骤3:Model层(Model层接口 & 实现类) /** * Model层接口:Ifanyi * 需定义在实现类中需要用到的方法
变成了简单的同步代码:通过一个方法获取数据,并将数据渲染到 UI 组件。 Block 组件是单独封装的布局组件,希望不要因此造成任何理解上的困难 一个组件变成了数据与UI的结合。...我们分别将复杂的数据处理逻辑封装在 hook 里,将复杂的UI交互逻辑封装在基础 UI 组件里,在使用时,利用他们的封装结果进行组合,能够简单,高效的组合出复杂的页面,这也是我们在实践中最大的追求 这里有些人可能会有一些疑问...,我们还需要约定传入 api 的参数类型与返回类型 因此,在定义 useFetch 时,我们先用 ts 约定 api 的具体类型,因为参数类型和返回值类型在封装时都不确定,只能在具体的实参传入之后才能明确...,传入的 api 函数已经具备了完善的类型,因此我们这种写法可以借助 ts 内部的自动推导而简化使用时在 ts 上的繁琐 const { loading, setLoading, setParam..., list, error } = useFetch(searchApi) 虽然在使用层面没有任何 ts 的痕迹,但是返回值的类型已经非常明确 由于在封装过程中我们没有处理默认值的情况,因此返回类型可能为
, Android Design Support Library 更多的是对一些特效的实现,这个库和github上的很多开源的项目有很大的关系,material design的很多效果,同一种效果在github...) 官方视频简介 Navigation View 抽屉导航是app识别度与内部导航的关键,保持这里设计上的一致对app的可用性至关重要,尤其是对第一次使用的用户。...NavigationView处理好了和状态栏的关系,可以确保NavigationView在API21(5.0)设备上正确的和状态栏交互。...效果和Code请移步 NavigationDrawer和NavigationView-Android M新控件 ---- 输入框控件的悬浮标签 在material design中,即使是简单的EditText...通常EditText会在用户输入第一个字母后隐藏提示信息,但是现在可以使用TextInputLayout来将EditText封装起来,提示信息(hint)会变成一个显示在EditText之上的floating
EditText EditText是文本输入框,与输入有关的属性说明如下: 在XML布局文件中指定: inputType : 指定输入的文本类型。...在代码中设置: setInputType : 设置输入的文本类型。...setHintTextColor : 设置提示文本的颜色。 在录入用户信息时(比如输入姓名、密码等等),EditText输入回车键,常常不要换行而是让光标直接跳到下一个编辑框。...: 在XML布局文件中指定: scaleType : 指定图形的拉伸类型。...在代码中设置: setScaleType : 设置图形的拉伸类型。 setImageAlpha : 设置图形的透明度。 setImageBitmap : 设置图形的Bitmap对象。
后者通过使用EditText类的setInputType()方法,将InputType.TYPE_TEXT_VARIATION_PASSWORD添加到其输入类型,来实现的。...5.1.3.3 关于“使密码可见”设置 Android 设置菜单中有一个名为“使密码可见”的设置。 在 Android 4.4 的情况下,如下所示。...设置 -> 安全 -> 使密码可见 打开“使密码可见”设置时,最后输入的字符以纯文本显示。 经过一定的时间(约两秒),或输入下一个字符后,以纯文本显示的字符将被屏蔽。 关闭时,输入后会立即屏蔽。...此设置影响整个系统,并且它适用于使用EditText的密码显示功能的所有应用。 5.1.3.4 禁用屏幕截图 在密码输入屏幕中,密码可以在屏幕上清晰显示。...在处理个人信息的屏幕中,如果屏幕截图功能在默认情况下处于启用状态,则可能会从屏幕截图文件中泄漏,它存储在外部存储器上。因此建议对密码输入屏幕禁用屏幕截图功能。 通过附加下面的代码可以禁用屏幕截图。
先下载Demo再阅读,效果会更好:Carson_Ho的Github地址:Search_Layout 结构说明 文件类型 作用 SearchView.java 搜索框所有功能的实现 RecordSQLiteOpenHelper.java...X轴上的起点 y:组件在容器Y轴上的起点 width:组件的长度 height:组件的高度 } /** * 步骤3:通过监听复写EditText本身的方法来确定是否显示删除图标...对于含有一键清空功能 & 更多自定义样式的EditText自定义控件具体请看我的另外一个简单 & 好用的开源组件:Android自定义EditText:手把手教你做一款含一键删除&自定义样式的SuperEditText...源码分析 /** * 监听输入键盘更换后的搜索按键 * 调用时刻:点击键盘上的搜索键时 */ et_search.setOnKeyListener(new View.OnKeyListener...总结 相信你一定会喜欢上 这款简单 & 好用的SearchView控件 已在Github上开源:SearchView,欢迎 Star !
(诸如硬盘、CD-ROM或共享资源)上的计算机文件和目录可供用户通过计算机的文件系统访问的一个过程。...--限制EditText只允许单行输入,而且不会滚动--> 设置文字间隔,设置英文字母大写类型 android:textScaleX="1.5" 在EditText的右边输出一个drawable--> android:drawableTop="@drawable/xxx" 在EditText的下方输出一个drawable--> android:drawableLeft="@drawable/xxx" 在EditText的左边输出一个drawable--> android:drawablePadding <!
在SQL Shell中!命令用于发出ObjectScript命令行。 != 感叹号/等号:不等于比较条件。 " 引号(34):包含一个分隔的标识符名称。...%% 双百分号:伪字段引用变量关键字的前缀:%%CLASSNAME、%%CLASSNAMEQ、%%ID和%%TABLENAME,在ObjectScript计算字段代码和触发器代码中使用。...:: 双冒号:在触发器代码中,这个双前缀表示该行开始的标识符(::name)是主机变量,而不是标签行。 ; 分号(59):过程、方法、查询和触发器代码中的SQL语句结尾分隔符。..._ 下划线(95):标识符名称的有效第一个(或后续)字符。某些用户名(但不是密码)的有效第一个字符。...它可以是在多个属性上定义的IDKey索引(`pro1 pro2),也可以是父子关系的ID(parent Child)。不能在IDKEY`字段数据中使用。
MDC提供了多种精美和实用的界面组件,让开发者快速构建现代化的应用界面。在本项目中,利用MDC框架实现一个登录页面,详细展示开发过程中的技术细节和遇到的问题。...1.1 项目需求分析 登录页面的基本结构: 两个文本字段:用于输入用户名和密码。 两个按钮:分别为“Cancel”按钮和“Next”按钮。 应用Logo:显示Shrine的徽标图片。...文件中,使用MDC的TextInputLayout和TextInputEditText创建用户名和密码输入的字段: Password ... 2.4 添加输入验证功能 TextInputLayout 主要功能是错误反馈,代码业务逻辑实现错误提示,设置密码字段类型为...需要多考虑边缘情况,比如密码为空、快速输入时的延迟反应。
上开源:Super_EditText 具备详细的源码分析文档(即本文) 所以,在其上做二次开发 & 定制化成本非常低。...功能详细设计 下面将给出详细的功能逻辑 4.1 一键清空输入字段 描述:将当前用户输入的字段清空 需求场景:方便用户因出现输入错误而进行2次输入 原型图 ?...(x,y,width,height),即必须设置过初始位置、宽和高等信息 // x:组件在容器X轴上的起点 y:组件在容器Y轴上的起点 width:组件的长度 height:组件的高度...、宽和高等信息 // x = 组件在容器X轴上的起点、y = 组件在容器Y轴上的起点、width=组件的长度、height = 组件的高度 // b....(x,y,width,height),即必须设置过初始位置、宽和高等信息 // x:组件在容器X轴上的起点 y:组件在容器Y轴上的起点 width:组件的长度 height:组件的高度
功能详细设计 下面将给出详细的功能逻辑 4.1 一键清空输入字段 描述:将当前用户输入的字段清空 需求场景:方便用户因出现输入错误而进行2次输入 原型图 源码分析 /* * 步骤1:定义属性...(x,y,width,height),即必须设置过初始位置、宽和高等信息 // x:组件在容器X轴上的起点 y:组件在容器Y轴上的起点 width:组件的长度 height:组件的高度...、宽和高等信息 // x = 组件在容器X轴上的起点、y = 组件在容器Y轴上的起点、width=组件的长度、height = 组件的高度 // b....(x,y,width,height),即必须设置过初始位置、宽和高等信息 // x:组件在容器X轴上的起点 y:组件在容器Y轴上的起点 width:组件的长度 height:组件的高度...总结 相信你一定会喜欢上 这款简单 & 好用的SuperEditText控件 已在Github上开源:Super_EditText
Google对这个问题的解决方案是Espresso,它是一个测试框架,能够使UI测试在多线程环境中安全地运行,并移除了关于编写测试的大部分样板代码。...测试代码的位置取决于您要编写的测试的类型。Android Studio 为以下两种测试类型提供了源代码目录(源集): 本地单元测试 位于 module-name/src/test/java/。...这些测试在计算机的本地 Java 虚拟机 (JVM) 上运行。当您的测试没有 Android 框架依赖项或当您可以模拟 Android 框架依赖项时,可以利用这些测试来尽量缩短执行时间。...在 Choose Destination Directory 对话框中,点击与您想创建的测试类型对应的源集:androidTest 对应于仪器测试,test 对应于本地单元测试。然后点击 OK。......如图8所示: 这样就会在模拟器或者连接的设备上运行测试,你可以在手机屏幕上看到被执行的动作(比如在EditText上打字)请查看原文视频。
领取专属 10元无门槛券
手把手带您无忧上云