UI控件之编辑文本控件EditText
2016-06-19 17:55
531 查看
(一)概述
EditText是除了TextView控件之外的属性,还可以实现输入文本内容。
(二)实际开发中的应用
N0.1 —–设置默认提示文本
常用的用户登录界面相信大家都很熟悉吧,就像这样:
默认提示文本的俩个属性,如下:
hint用于设置默认提示的文本,textColorHint用于设置提示文本的颜色;
No.2 —-获得焦点后全选组件内所有文本内容
当我们点击EditText输入框后获得焦点后,不是将光标移动到文本的开始或者结尾;而是获取输入框中的所有文本内容的话!这个时候我们可以使用selectAllFocus属性;
android:selectAllFocus=”true”
下面是效果图:
第一个具有 android:selectAllFocus=”true”属性,点击后会选中 所有文本,而第二个是没有 android:selectAllFocus=”true”属性的,所以,点击后不会选中所有文本;
No.3—–限制EditText输入类型
比如限制只能为电话号码,密码(textPassword):
可选参数如下:
文本类型,多为大写,小写和数字符号
数值类型:
No.4—–设置最小行,最多行,单行,多行,自动换行;
NO.5 —–设置文本间隔,设置英文字母大写类型
我们可以通过下述俩个属性来设置字的间距:
NO.6 —– 控制EditText四周的间隔距离与内部文字和边框间的距离
NO.7 —– 设置EditText获得焦点同时弹出小键盘
首先是让EditText获得焦点跟清除焦点的
获得焦点后弹出小键盘:
第一种:
第二种:
NO.8 —– EditText光标位置的控制
NO.9 —–带表情的EditText简单实现
代码实现:
No.10 带删除按钮的EditText
我们常常会看到这样的界面:
看到最后面的那个“X”了吗?
实现代码如下:
这是属于进阶技术自定义EditText了,后面我会详细介绍,不要着急~~完
EditText是除了TextView控件之外的属性,还可以实现输入文本内容。
(二)实际开发中的应用
N0.1 —–设置默认提示文本
常用的用户登录界面相信大家都很熟悉吧,就像这样:
默认提示文本的俩个属性,如下:
hint用于设置默认提示的文本,textColorHint用于设置提示文本的颜色;
No.2 —-获得焦点后全选组件内所有文本内容
当我们点击EditText输入框后获得焦点后,不是将光标移动到文本的开始或者结尾;而是获取输入框中的所有文本内容的话!这个时候我们可以使用selectAllFocus属性;
android:selectAllFocus=”true”
下面是效果图:
第一个具有 android:selectAllFocus=”true”属性,点击后会选中 所有文本,而第二个是没有 android:selectAllFocus=”true”属性的,所以,点击后不会选中所有文本;
No.3—–限制EditText输入类型
比如限制只能为电话号码,密码(textPassword):
可选参数如下:
文本类型,多为大写,小写和数字符号
数值类型:
No.4—–设置最小行,最多行,单行,多行,自动换行;
NO.5 —–设置文本间隔,设置英文字母大写类型
我们可以通过下述俩个属性来设置字的间距:
NO.6 —– 控制EditText四周的间隔距离与内部文字和边框间的距离
NO.7 —– 设置EditText获得焦点同时弹出小键盘
首先是让EditText获得焦点跟清除焦点的
获得焦点后弹出小键盘:
第一种:
第二种:
NO.8 —– EditText光标位置的控制
NO.9 —–带表情的EditText简单实现
代码实现:
public class EditText_03 extends Activity { private Button etdBtn; private EditText edt3; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.edit_text_03_activity); final EditText edt3 = (EditText) findViewById(R.id.edt3); Button etdBtn = (Button) findViewById(R.id.etdBtn); etdBtn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { int randomId = 1 + new Random().nextInt(9); SpannableString spannableString = new SpannableString( "face"); Drawable drawable = getResources().getDrawable(R.drawable.gg); drawable.setBounds(0, 0,drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight()); ImageSpan imageSpan = new ImageSpan(drawable , ImageSpan.ALIGN_BASELINE); spannableString.setSpan(imageSpan, 0, 4, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); spannableString.setSpan(imageSpan, 0, 4, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); int cursor = edt3.getSelectionStart(); edt3.getText().insert(cursor, spannableString); } }); } }
No.10 带删除按钮的EditText
我们常常会看到这样的界面:
看到最后面的那个“X”了吗?
实现代码如下:
public class CoustomEditTextForDel extends EditText { private static String TAG = "CoustomEditTextForDel"; private Drawable imgInable; private Drawable imgInAble; private Context mContext; public CoustomEditTextForDel(Context context) { super(context); mContext = context; init(); } public CoustomEditTextForDel(Context context, AttributeSet attrs) { super(context, attrs); mContext = context; init(); } public CoustomEditTextForDel(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); mContext = context; init(); } private void init() { imgInable = mContext.getResources().getDrawable(R.drawable.del); addTextChangedListener(new TextWatcher() { @Override public void onTextChanged(CharSequence s, int start, int before, int count) { // TODO Auto-generated method stub } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { // TODO Auto-generated method stub } @Override public void afterTextChanged(Editable s) { // TODO Auto-generated method stub setDrawable(); } }); setDrawable(); } //设置删除图片 private void setDrawable(){ if (length() < 1) { setCompoundDrawablesWithIntrinsicBounds(null, null, null, null); }else { setCompoundDrawablesWithIntrinsicBounds(null, null, imgInable, null); } } //处理删除事件 @Override public boolean onTouchEvent(MotionEvent event) { if (imgInAble !=null && event.getAction() == MotionEvent.ACTION_UP) { int eventX =(int)event.getRawX(); int eventY =(int)event.getRawY(); Log.e(TAG, "xys"+"evenX" + eventX +"; eventY = "+eventY); Rect rect = new Rect(); getGlobalVisibleRect(rect); rect.left = rect.right - 100; if (rect.contains(eventX , eventY)) { setText(""); } } return super.onTouchEvent(event); } @Override protected void finalize() throws Throwable { // TODO Auto-generated method stub super.finalize(); } }
这是属于进阶技术自定义EditText了,后面我会详细介绍,不要着急~~完
相关文章推荐
- 在Bluemix 使用OpenWhisk and AlchemyAPI 开发人脸辨识应用系统
- UITableView section header 不固定
- mybatis_user_guide(3)XML配置
- UITableviewcell的性能问题
- 解决HttpServletRequest中文乱码的问题
- iOS实战-头像更新上传之后,UI不刷新
- 实用工具网站(经纬度、短链接、图片格式转换、长微博、图片压缩、uuid、繁体字)
- iOS开发 - 第02篇 - UI进阶 - 15 - 彩票(第二天)
- proBuilder编辑的模型变黑
- UITableView 关于cell与cell之间的间距
- Arduino、bootloader、BadUSB、及其相关硬件知识入门学习
- java ee 中request对象getAttribute和getParameter区别
- Arduino 卡片15红外遥控数码管
- LeetCode Count Numbers with Unique Digits
- php没有uint64
- 【一天一道LeetCode】#96. Unique Binary Search Trees
- 【一天一道LeetCode】#96. Unique Binary Search Trees
- 重温5 UI开发
- UIView 中布局学习例子
- UITableView常见问题总结(二)