android 代码设置EditText的hint字符
今天,简单讲讲android里如何在代码里设置
EditText的hint字符。
之前,我一般是直接在xml文件设置EditText 的hint字符,后来需要在代码里修改hint字符,发现自己居然不知道怎么实现,在网上搜索资料后,终于解决了这个问题。这里记录一下。
其实也很简单:
1.xml文件中设置Ediitext的提示文字
android:hint="请输入"
2.xml文件中设置Ediitext的提示文字的颜色
android:textHintColor="#fff"
3.代码实现改变Edittext提示的文字
et_name = (EditText) findViewById(R.id.et_name);SpannableString s = new SpannableString("你好呀 小美人");//这里输入自己想要的提示文字et_name.setHint(s);
其实et_name.setHint(s); 就可以设置hint的字符,可以直接传入String设置。
4.代码实现改变Edittext提示的文字的大
/*** EditText 控件** @param hintContent hint 内容* @param hintSize hint 内容size*/public static void setEditTextHintSize(EditText editText, String hintContent, int hintSize) {// 设置hint字体大小SpannableString ss = new SpannableString(hintContent);AbsoluteSizeSpan ass = new AbsoluteSizeSpan(hintSize, true);ss.setSpan(ass, 0, ss.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);// 设置hinteditText.setHint(new SpannedString(ss)); // 一定要进行转换,否则属性会消失}
这里就简单讲解了设置hing的代码,下面讲讲android里对于设置hint的源码。
TextView的源码(EditText继承自TextView), 发现了一些端倪,如下:
public final void setHint(CharSequence hint) {mHint = TextUtils.stringOrSpannedString(hint);if (mLayout != null) {checkForRelayout();}if (mText.length() == 0) {invalidate();}// Invalidate display list if hint is currently usedif (mEditor != null && mText.length() == 0 && mHint != null) {mEditor.invalidateTextDisplayList();}
}
在方法的一开始就是对hint文本的转换.由于hint是CharSequence类型的, 说明有希望可以增加一些自定义属性, 我们再看TextUtils.stringOrSpannedString这个方法:
public static CharSequence stringOrSpannedString(CharSequence source) {if (source == null)return null;if (source instanceof SpannedString)return source;if (source instanceof Spanned)return new SpannedString(source);return source.toString();
}
那么问题来了,我们只要传入的hint是SpannedString或者Spanned类型,就可以保持文本的自定义属性了吗? 答案是肯定的! 直接上代码:
EditText editText = (EditText) rootView.findViewById(R.id.et);
// 新建一个可以添加属性的文本对象
SpannableString ss = new SpannableString("喝酒就要喝一斤!");
// 新建一个属性对象,设置文字的大小
AbsoluteSizeSpan ass = new AbsoluteSizeSpan(8,true);
// 附加属性到文本
ss.setSpan(ass, 0, ss.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
// 设置hint
editText.setHint(new SpannedString(ss)); // 一定要进行转换,否则属性会消失
注意最后一步,一定要进行转换, 类型不对会被转换为String对象,这样自定义的额属性就会丢失.
以下是最终效果:
简单讲讲,其实setHint(CharSequence hint)代码首先判断传入的是不是SpannedString,如果是,就直接设置到EditText的界面上,也会保留SpannedString的效果,如果传入的是String或者Spanned,就会转成String设置到EditText,这样就只能使用默认效果。
android 代码设置EditText的hint字符就讲完了。
就这么简单。
android 代码设置EditText的hint字符相关推荐
- android 铃声设置失败,无法通过Android代码设置铃声
我正在开发一个应用程序,它将随机设置用户已选择的铃声列表中的铃声.无法通过Android代码设置铃声 虽然我的代码适用于Android N及以上版本,但我遇到了Android M及以下版本的问题.我为 ...
- android中用代码设置edittext属性为密码,Android中EditText常用属性设置
EditText继承关系:View–>TextView–>EditText 常用属性如下:android:layout_gravity="center_vertical" ...
- android 代码设置居右_Android 开发实现EditText 光标居右显示
Android 开发实现EditText 光标居右显示 前言: 有些时候肯定会遇到这种奇葩的需求,光标要靠右显示,因为Android里面光标默认是靠左显示的,那怎么实现呢,肯定有办法的,这里提供一种实 ...
- android代码集EditText只要输入号码、信
如何设置EditText,因此,只有某些数字或字母可以进入它? 一.建立EditText,只要输入号码: 办法1:直接生成DigitsKeyListener了. et_1.setKeyListe ...
- android 代码设置 键盘适应_详细讲解Android修改键盘文字的方法
1.首先,针对EditText的设置 在xml布局中,针对EditText的设置. android:layout_width="match_parent" android:layo ...
- android代码设置maxlength,android-使用maxLength使用3个点结束TextView
android-使用maxLength使用3个点结束TextView 我的布局中有一个TextView,它是layout_width中的wrap_content. 最多限制为15个字符,因此我正在使用 ...
- 【Android】设置EditText输入类型和内容长度
1.设置输入类型 设置EditText输入类型主要有两种方法,一种是使用EditText的setInputType()方法,另一种是在布局文件中使用android:inputType属性来设置. (1 ...
- android 代码设置 键盘适应_Android自适应软键盘的Dialog以及监听软键盘弹起
最近项目中遇到一个需求:新手引导.跟一般的新手引导没有什么太大区别,思路都是搞一个带阴影的遮罩层,然后在上边儿给一些提示性的文字,由于需求中有些特殊的地方,所以我用了一个全屏的dialog(而且,di ...
- android 代码设置圆角,Android中用Shape实现圆角和局部圆角
本文讲解如何实现布局边框的部分圆角 大家可能都知道圆角实现其实很简单, 在drawable文件夹下新建xml文件加入以下代码 情景1: 四个角均为圆角 android:shape="rect ...
最新文章
- jeesite如何已生成数据的数据源_使用Jeesite进行二次开发
- 数据处理_流数据处理利器
- 成功解决FileNotFoundError: [Errno 2] No such file or directory: '/home/bai/Myprojects/Tfexamples/data/kn
- 12.10课堂学习----实例化、构造方法案例
- Handling Errors Exceptionally Well in C++ 在C++中良好地捕获意外的错误
- 用递归实现字符数组的反转
- 你真的需要全栈开发吗?
- qt qtableview插入进度条_Qt之QSqlTableModel的使用
- Oracle 19c 安装教程
- 人脸识别 java_利用Java调用OpenCV进行人脸识别
- 齿轮计算机在线,齿轮参数计算器(萝卜花齿轮计算工具)9.5 中
- 程序员为了讨好大舅子,竟自学自动化编程
- win7计算机怎么优化驱动器,win7电脑怎么优化
- 高等数学-多元函数微分法
- 于丹《庄子》心得讲稿-《大道与自然》
- 如何使用python画一个爱心
- python学法用法 自动刷分_使用python对微信小游戏跳一跳刷分
- js 时间格式Wed Mar 22 13:38:37 CST 2022 转为yyyy-mm-dd
- Centos 安装docker后 deamo 无法启动的问题 解决
- iphonex时间显示蓝色_遨游M5 EX敢于打出与苹果iPhone X一样的价格,有特色之处,看下...