Android开发-Android常用组件-EditText输入框
4.2 EditText(输入框)
- EditText 输入框,继承于TextView, 也继承其属性
- EditText 特有属性:
属姓名 |
说明 |
android:hint |
默认提示文本 |
android:textColorHint |
默认提示文本的颜色 |
android:selectAllOnFocus |
布尔值。点击输入框获得焦点后,获取到输入框中所有的文本内容 |
android:inputType |
对输入的数据进行限制 |
android:minLines |
设置最小行数 |
android:maxLines |
设置最大行数 PS:当输入内容超过maxline,文字会自动向上滚动!! |
android:singleLine |
只允许单行输入,而且不会滚动 |
android:textScaleX |
设置字与字的水平间隔 |
android:textScaleY |
设置字与字的垂直间隔 |
android:capitalize (已弃用) |
sentences:仅第一个字母大写 ;words:每一个单词首字母大写,用空格区分单词;characters:每一个英文字母都大写 |
-
- 文本类型,多为大写、小写和数字符号
android:inputType="none" |
无 |
android:inputType="text" |
文本 |
android:inputType="textCapCharacters" |
字符大写 |
android:inputType="textCapWords" |
字母大写 |
android:inputType="textCapSentences" |
句子大写 |
android:inputType="textAutoCorrect" |
文本自动更正 |
android:inputType="textAutoComplete" |
文本自动完成 |
android:inputType="textMultiLine" |
多行文本 |
android:inputType="textImeMultiLine" |
多行文字 |
android:inputType="textNoSuggestions" |
文本无建议 |
android:inputType="textUri" |
链接 |
android:inputType="textEmailAddress" |
电子邮件地址 |
android:inputType="textEmailSubject" |
电子邮件主题 |
android:inputType="textShortMessage" |
短信息 |
android:inputType="textLongMessage" |
长信息 |
android:inputType="textPersonName" |
人名 |
android:inputType="textPostalAddress" |
邮寄地址 |
android:inputType="textPassword" |
密码 |
android:inputType="textVisiblePassword" |
可见密码 |
android:inputType="textWebEditText" |
Web编辑文本 |
android:inputType="textFilter" |
文本过滤 |
android:inputType="textPhonetic" |
文本拼音 |
-
- 数值类型
android:inputType="number"//数字
android:inputType="numberSigned"//数字符号
android:inputType="numberDecimal"//十进制数字
android:inputType="phone"//拨号键盘
android:inputType="datetime"//日期时间
android:inputType="date"//日期键盘
android:inputType="time"//时间键盘
- 设置EditText获得焦点,同时弹出小键盘
edit.requestFocus(); //请求获取焦点
edit.clearFocus(); //清除焦点
- 低版本的系统直接requestFocus就会自动弹出小键盘了稍微高一点的版本则需要我们手动地去弹键盘。
- 第一种:
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);
-
- 第二种:
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); imm.showSoftInput(view,InputMethodManager.SHOW_FORCED); imm.hideSoftInputFromWindow(view.getWindowToken(), 0); //强制隐藏键盘
- EditText光标位置的控制
setSelection();//一个参数的是设置光标位置的,两个参数的是设置起始位置与结束位置的中 间括的部分,即部分选中
示例:
edit_text.xml:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:background="#eeeeee" android:padding="10dp"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:layout_marginTop="40sp" android:text="登录界面" android:textColor="#000000" android:textSize="20sp"/> <!-- 用户名--> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="50dp" android:orientation="horizontal"> <TextView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="center_horizontal" android:text="用户名:" android:textColor="#000000" android:textSize="19sp"/> <EditText android:id="@+id/etName" android:layout_width="0dp" android:layout_height="50dp" android:layout_weight="4" android:text="临易ioup" android:hint="请输入用户名"/> </LinearLayout> <!-- 密码--> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="50dp" android:orientation="horizontal"> <TextView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="center_horizontal" android:text="密 码:" android:textColor="#000000" android:textSize="19sp"/> <EditText android:id="@+id/etPassword" android:layout_width="0dp" android:inputType="textPassword" android:layout_height="50dp" android:layout_weight="4" android:hint="请输入密码"/> </LinearLayout> </LinearLayout>
MainActivity.java:
package com.example.myapplication; import androidx.appcompat.app.AppCompatActivity; import androidx.constraintlayout.widget.ConstraintLayout; import android.os.Bundle; import android.widget.EditText; import android.widget.LinearLayout; import android.widget.TextView; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.edit_text); EditText editName = findViewById(R.id.etName); editName.requestFocus();//设置一个焦点 editName.setSelection(2);//将焦点定为第二个字后边 } }
启动测试:
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性