EditText详细介绍
来源:互联网 发布:优化教育环境 编辑:程序博客网 时间:2024/05/29 04:33
EditText是接受用户输入信息的最重要控件。今天,我们来对一些常见属性进行讲述一下,让大家对该控件有更深刻的了解。要实现的效果图如下所示:
最上面TextView显示下面EditText的内容,并且对EditText立面拒绝复制及粘贴,同时EditText中的删除符号能够删除已输入的内容。
首先,贴出该工程activity_main的配置信息:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:id="@+id/tv1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello_world" android:gravity="center" android:layout_gravity="center" android:layout_marginTop="10dp" /><LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:layout_marginRight="30dp" android:layout_marginLeft="30dp" android:orientation="horizontal" android:gravity="center" android:background="@drawable/ic_search_gray" > <EditText android:id="@+id/et1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" android:textSize="13sp" android:hint="input a number or charactor" android:paddingLeft="@dimen/search_hint_padding_left_new" android:textColor="@color/input_text" android:textColorHint="@color/hint_input_text" android:singleLine="true" android:background="@null" android:imeOptions="actionDone" /> <Button android:id="@+id/button_clear" android:layout_width="30dp" android:layout_height="30dp" android:background="@drawable/ic_search_cancel" android:visibility="invisible" android:paddingRight="8dp" /></LinearLayout> </LinearLayout>
values下面有如下配置文件,分别为:color.xml,dimens.xml,strings.xml等,第一个配置文件专门设置控件颜色、第二个设置距离、第三个设置字符串,尤其对中文有效。三个文件内容分别为:
color.xml:
<?xml version="1.0" encoding="utf-8"?><resources> <color name="input_text">#000000</color> <color name="hint_input_text">#33000000</color></resources>
dimens.xml
<?xml version="1.0" encoding="utf-8"?><resources> <dimen name="search_hint_padding_left_new">12dip</dimen> <dimen name="cancel_btn_maginRight">8dp</dimen></resources>
strings.xml:
<?xml version="1.0" encoding="utf-8"?><resources> <string name="app_name">MyEditText</string> <string name="hello_world">Hello world!</string><string name="tishi">only input number or digit</string></resources>
源代码MainActivity.java如下:
package com.example.myedittext;import android.app.Activity;import android.os.Bundle;import android.text.Editable;import android.text.InputFilter;import android.text.Spanned;import android.text.TextWatcher;import android.view.ActionMode;import android.view.ActionMode.Callback;import android.view.KeyEvent;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.View.OnClickListener;import android.view.View.OnKeyListener;import android.view.inputmethod.EditorInfo;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;public class MainActivity extends Activity {EditText searchEditText;Button clearButton;TextView tvShow;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);searchEditText = (EditText)findViewById(R.id.et1);clearButton = (Button)findViewById(R.id.button_clear);tvShow = (TextView)findViewById(R.id.tv1);//设置为中文searchEditText.setInputType(EditorInfo.TYPE_CLASS_TEXT);//中文或者英文都看成一个字符长度//配置文件可以设置:android:maxLength = "10"searchEditText.setFilters(new InputFilter[]{new InputFilter.LengthFilter(20)});//设置为英文//et.setInputType(EditorInfo.TYPE_TEXT_VARIATION_URI);clearButton.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubsearchEditText.setText("");}});searchEditText.addTextChangedListener(mTextWatcher);searchEditText.setCustomSelectionActionModeCallback(new Callback() {@Overridepublic boolean onPrepareActionMode(ActionMode arg0, Menu arg1) {// TODO Auto-generated method stubreturn false;}@Overridepublic void onDestroyActionMode(ActionMode arg0) {// TODO Auto-generated method stub}@Overridepublic boolean onCreateActionMode(ActionMode arg0, Menu arg1) {// TODO Auto-generated method stubreturn false;}@Overridepublic boolean onActionItemClicked(ActionMode arg0, MenuItem arg1) {// TODO Auto-generated method stubreturn false;}});searchEditText.setLongClickable(false);}//TextWatcher专门用来监听文本变化/*TextWatcher自身是一个接口,首先需要实现这个接口并覆盖其三个方法,分别为Text改变之前,改变之后以及改变的过程中各自发生的动作相应*/TextWatcher mTextWatcher = new TextWatcher() {@Overridepublic void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {// TODO Auto-generated method stubtvShow.setText(arg0);}@Overridepublic void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {// TODO Auto-generated method stubSystem.out.println("监听EditText内容发生变化"+arg0);}@Overridepublic void afterTextChanged(Editable arg0) {// TODO Auto-generated method stubSystem.out.println("这里实现输入内容即显示");System.out.println(searchEditText.getText().toString());if(searchEditText.getText().toString() != null && !searchEditText.getText().toString().equals("")){clearButton.setVisibility(View.VISIBLE);} else{clearButton.setVisibility(View.INVISIBLE);tvShow.setText("Hello world!");}}};}
实现如上效果,两张图片分别为:
下面,我们来对各属性进行详细解释,如有不足之处,请大家指出来。
android:imeOptions="actionDone" 设置弹出输入法,软键盘右下角显示完成;如果想显示为下一步,可改成actionNext。
android:visibility="invisible" 设置为不可见
android:singleLine="true" 设置成只能显示一行
android:maxLength = "10" 设置成最多只能输入10个字符
searchEditText.setInputType(EditorInfo.TYPE_CLASS_TEXT); 这行代码使得点击输入框,弹出的软键盘默认输入法为中文;若想弹出默认输入法为英文,可改成searchEditText.setInputType(EditorInfo.TYPE_TEXT_VARIATION_URI);
对EditText的复制黏贴功能进行屏蔽,只需屏蔽EditText的长按响应就ok了:searchEditText.setLongClickable(false);
其他的代码,大家可以参考注释,或者Android的sdk文档进行查看。
- EditText详细介绍
- TextView和EditText 属性详细介绍
- EditText的详细使用
- EditText的详细使用
- EditText 详细说明
- Andorid中UI控件的详细介绍(四)——EditText
- Android EditText介绍
- android EditText 属性介绍
- EditText的属性介绍:
- EditText 属性介绍
- EditText的属性介绍
- EditText的属性介绍
- EditText的详细属性说明
- TextView和EditText的介绍
- IOS GCD 介绍详细介绍
- EditText的一些常用功能的介绍
- Android基础之EditText属性介绍
- 编辑框(EditText)介绍与应用
- 图像基本概念
- JAVA命名规则
- Spring AOP实现日志记录
- Oracle与MySQL的几点区别
- VMWare虚拟机设置固定ip上网方法
- EditText详细介绍
- Linux 挂载 windows共享盘
- 安装Nginx
- 使用git pull文件时和本地文件冲突怎么办
- Android ORM数据库之OrmLite使用框架及源码分析
- 【剑指offer】替换空格
- iOS报错汇总
- Mybatis中模糊查询的各种写法
- UGUI如何在UI与UI直接穿插粒子特效和模型