今天学习了一个Android Design Support Library 中的TextInputLayout控件,感觉还不错,较之以往的Editetxt,多了几分灵活性,使用也非常easy,故此给大家推荐一下。并记录用法。

首先上图来介绍一下它跟我们以往使用的有什么改变。

这里简单看一下,它多了一个提示功能。一般当EditText输入内容后,hint会消失。

TextInputLayout会在输入内容后。提示就会浮动在EditText上方。

当然也支持错误提示。

以下来看实现方式

加入依赖

    //noinspection GradleCompatible
compile 'com.android.support:design:24.0.0-alpha1'

该怎样实现呢?TextInputLayout作为父布局包括EditText即可了

 <android.support.design.widget.TextInputLayout
android:id="@+id/textInputLayouts"
android:layout_width="match_parent"
android:layout_margin="8dp"
android:layout_height="wrap_content"> <EditText
android:id="@+id/etPassword"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/space_16"
android:hint="请输入password"
android:inputType="textPassword"
android:padding="@dimen/space_16"
android:textColor="@color/grey_800"
android:textSize="@dimen/text_size_14" />
</android.support.design.widget.TextInputLayout>

实现方式非常easy哈。然后该怎样在代码里设置呢?

TextInputLayout主要包括以下几个方法:


1.setHint()。设置提示信息

2.setError(),设置错误提示信息

3.setErrorEnabled(boolean enabled),设置error是否显示

4.getEditText(),获取自布局EditText

5.setCounterMaxLength(int) 设置可输入最大字符数。并在以下进行统计

6.setCounterEnabled(boolean ); 设置是否统计输入字符数

7.setHintAnimationEnabled(boolean) 设置hint动画是否开启。


效果如上。

 tlName = (TextInputLayout) findViewById(R.id.textInputLayout);
tlPwd = (TextInputLayout) findViewById(R.id.textInputLayouts);
tlName.setHint("请输入username");
tlPwd.setHint("请输入password");

String userName = etUserName.getText().toString().trim();
String password = etPassword.getText().toString();
if (TextUtils.isEmpty(userName)) {
tlName.setError("username不能为空");
} else {
tlName.setErrorEnabled(false);
}
if (TextUtils.isEmpty(password)) {
tlPwd.setError("password不能为空");
} else {
tlPwd.setErrorEnabled(false);
}

逻辑嘛。也就是我们寻常写的登陆注冊逻辑。关键点在于加入了setError()。setErrorEnabled()方法。

好啦,就这么多。有个问题在设置setCounterMaxLengt()后。输入超过设置字符数后,会数组越界,不知道哪位大兄弟能够教我,谢谢!

代码下载

http://pan.baidu.com/s/1pKDg2a3

最新文章

  1. 【Django】--Form组件
  2. Cats(2)- Free语法组合,Coproduct-ADT composition
  3. 如何根据执行计划,判断Mysql语句是否走索引
  4. C++ Pirmer : 第十四章 : 重载运算符与类型转换之函数调用运算符与标准库的定义的函数对象
  5. Java for LeetCode 142 Linked List Cycle II
  6. ssh-copy-id帮你建立信任
  7. quartz简单实现
  8. AC+DP练习
  9. 新项目架构从零开始(三)------基于简单ESB的服务架构
  10. SQLServer 重建索引前后对比
  11. SVN:重命名文件之后不允许提交
  12. 发布一个Python小程序:ManHourCalendar
  13. Eclipse设置新建jsp文件默认模板
  14. 排序算法的C语言实现(上 比较类排序:插入排序、快速排序与归并排序)
  15. 基于Android P系统对selinux相关整理
  16. js中获取时间new date()的用法
  17. bzoj4326 树链剖分 + 线段树 // 二分 lca + 树上差分
  18. OVS流表table之间的跳转
  19. SV中的覆盖率
  20. 【接口】常见接口集合(返回JSON)

热门文章

  1. Selenium+TestNG+Jenkins 框架图形化UML表示
  2. where常用运算符
  3. python之模块hashlib(提供了常见的摘要算法,如MD5,SHA1等等)
  4. UAC 实现原理及绕过方法
  5. 上海期货交易所CTP行情和交易接入
  6. [转载]JDBC/Spring/MyBatis性能比较
  7. Ubuntu常用命令大全[显示桌面]
  8. Python实现鸢尾花数据集分类问题——基于skearn的LogisticRegression
  9. 进阶之路(基础篇) - 008 SPI数据传输(库函数方法)
  10. 代码管理(四)SVN和Git对比