EditText显示文字不一样

来源:互联网 发布:淘宝云客服报名条件 编辑:程序博客网 时间:2024/05/16 13:04

1. 问题描述:

在做登录界面时,需要用到两个EditText,一个用于输入用户名,一个用于输入密码;既然EditText输入的类型不一样,自然们可以在xml文件中使用inputType属性来设置其类型了。那么问题来了,用户名的inputType设置为phone,表示输入的是手机号,密码的inputType设置为textPassword,则会造成两个EditText的hint显示的字体不一致,看起来非常别扭。

未加入inputType的时候:


加入inputType属性之后:


2. 解决办法:

既然在xml文件中解决不了,那么就去Java代码中试一下,去掉xml文件中的inputType属性,改为在Java代码中去设置;

etUsername.setInputType(InputType.TYPE_CLASS_PHONE);etPassword.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);

注意:设置密码框的输入类型时,前面必须加上InputType.TYPE_CLASS_TEXT,否则密码输入的还是明文


3. 追加问题:

但是,如果我们在xml文件中设置了textStyle属性为斜体或粗体至之类的,使用第二种方法还不足以完全解决字体类型不一致;下面是xml中设置完斜体的效果:

 

想起之前做类似QQ空间的评论效果时,【@某某回复@某某:巴拉巴拉****】一个text文本,它可以设置@某某在这一条黑色的text中显示成蓝色,用的是Spanner或者是Html;然后HTML中可以通过标签来设置文字的粗体,斜体。那么这边是不是可以直接在Java文件中通过HTML类来解决文字显示问题呢?

etUsername.setHint(Html.fromHtml("<strong><i>" + "input phone number" + "</i></strong>"));etPassword.setHint(Html.fromHtml("<strong><i>" + "input your password" + "</i></strong>"));


看下最终的效果图:

 


1 0
原创粉丝点击