Android TextView 与 EditText 的区别与使用

简介: Android TextView 与 EditText 的区别与使用

一、简介

  • TextView 继承 View,作用就是在界面上显示文本(类似于 iOS 中的 UILabel),同时它还是 EditTextButton 两个 UI 组件类的父类。
  • 另外 Android 关闭了它的文字编辑功能,如果想编辑内容,则可以使用 EditText

二、TextView

  • TextView 常用属性
属性 含义
id TextView 设置一个组件 id,根据 id,可以在 Java 代码中通过findViewById() 的方法获取到该对象,然后进行相关属性的设置。
layout_width 组件宽度
layout_height 组件高度
text 设置显示的文本内容,通常是把字符串写到 res/values/strings.xml 文件中, 然后通过 @string/xxx 取得对应的字符串内容。
textSize 字体大小,单位一般是用 sp
textColor 设置字体颜色,同上,通过 res/values/colors.xml 资源来引用(使用:@color/xxx
textStyle 设置字体风格,三个可选值: normal(无效果)、bold(加粗)、 italic(斜体)。
autoLink 识别链接类型:webemailphonemapnoneall
lines 最大行数
minLines 最小行数
ellipsize 内容超出的时候,省略显示方式。start:省略号在开头 "...dzm"end:省略号在结尾 "dzm..."middle:省略号在中间 "dzm...xyq"marquee:跑马灯(实现跑马灯,必须让该控件获得焦点)
gravity 设置组件中内容的对齐方向,TextView 中是文字,ImageView 中是图片等等,它可以控制内容在组件中多个方位对齐内容:上下左右中
textAlignment 设置组件中内容的对齐方向,只能 居中居左居右
background 控件的背景颜色,可以理解为填充整个控件的颜色,可以是图片。
shadowColor 阴影颜色
shadowDx 阴影 x 方向位移
shadowDy 阴影 y 方向位移
shadowRadius 阴影的半径,也可以算作是模糊度。

  • 案例代码
<!-- TextView -->
<TextView
    android:id="@+id/dzm"
    android:layout_width="300dp"
    android:layout_height="300dp"
    android:text="@string/app_name"
    android:textSize="50sp"
    android:textColor="#f11"
    android:textStyle="bold"
    android:autoLink="email"
    android:lines="2"
    android:minLines="2"
    android:ellipsize="start"
    android:gravity="top"
    android:textAlignment="textEnd"
    android:background="@drawable/shape_text"
    android:shadowColor="#cff"
    android:shadowDx="0"
    android:shadowDy="50"
    android:shadowRadius="20"
    tools:ignore="RtlCompat" />

三、EditText

  • EditText 特有属性,同时支持上面 TextView 属性使用。
属性 含义
hint 默认提示文本
textColorHint 默认提示文本颜色
textColorHighlight 被选中文字的底色,默认为蓝色
selectAllOnFocus 布尔值,点击输入框获得焦点后,获取到输入框中所有的文本内容。
inputType 键盘类型,对输入的数据进行限制。
minLines 最小行数
maxLines 最大行数
singleLine 设置单行输入,一旦设置为 true,则文字不会自动换行。
textScaleX 控制字与字之间的间距
capitalize sentences:仅第一个字母大写。words:每一个单词首字母大小,用空格区分单词。characters:每一个英文字母都大写。
numeric 设置只能输入整数,如果是小数则是:decimal
gray=“top” 多行中指针在第一行第一位置
typeface 设置字型 normalsansserifmonospace
autoText 自动拼写帮助
freezesText 设置保存文本的内容以及光标的位置
inputMethod 为文本指定输入法,需要完全限定名(完整的包名) eg:com.huwei.xxxim
textCursorDrawable 设置光标颜色
et.setSelection(et.length()) 设置调整光标位置到最后一行
et.requestFocus() 请求获取焦点,低版本会自动弹出键盘,稍微高点的版本则需要手动去弹出键盘
et.clearFocus() 清除焦点

  • 案例代码
// 获取到编辑框
EditText et = (EditText)findViewById(R.id.dzm);
// 获取焦点
et.requestFocus();
// 设置光标位置
et.setSelection(2);

相关文章
|
4月前
|
数据库 Android开发
Android使用EditText+Listview实现搜索效果(使用room模糊查询)
本文介绍如何在Android中使用EditText与ListView实现搜索功能,并结合Room数据库完成模糊查询。主要内容包括:Room的模糊查询语句(使用`||`代替`+`号)、布局美化(如去除ListView分割线和EditText下划线)、EditText回车事件监听,以及查询逻辑代码示例。此外,还提供了相关扩展文章链接,帮助读者深入了解ListView优化、动态搜索及Room基础操作。
324 65
|
10天前
|
XML 编解码 Android开发
非常经典的Android开发问题-mipmap图标目录和drawable图标目录的区别和适用场景实战举例-优雅草卓伊凡
非常经典的Android开发问题-mipmap图标目录和drawable图标目录的区别和适用场景实战举例-优雅草卓伊凡
31 0
非常经典的Android开发问题-mipmap图标目录和drawable图标目录的区别和适用场景实战举例-优雅草卓伊凡
|
4月前
|
Java API Android开发
Android实现EditText的抖动效果
本文介绍Android开发中的**samples**资源,适合初学者学习。文中的动画效果源自samples(如API Demos展示)。通过调用`AnimationUtils.loadAnimation`实现摇晃动画,核心代码包括Java文件调用、shake.xml定义水平位移及cycle_7.xml设置循环次数。欢迎留言交流!
Android.mk(makefile)中几个符号的区别:=、 :=、 ?=、 +=
本文解释了在Android.mk文件中使用的几种赋值符号的区别,包括`=`(基本赋值)、`:=`(覆盖赋值)、`?=`(条件赋值,仅在变量未赋值时操作)、`+=`(追加赋值),并通过实验演示了这些符号的具体行为和效果。
740 1
|
Android开发 Kotlin
Android经典面试题之Kotlin的==和===有什么区别?
本文介绍了 Kotlin 中 `==` 和 `===` 操作符的区别:`==` 用于比较值是否相等,而 `===` 用于检查对象身份。对于基本类型,两者行为相似;对于对象引用,`==` 比较值相等性,`===` 检查引用是否指向同一实例。此外,还列举了其他常用比较操作符及其应用场景。
293 94
|
8月前
|
编译器 Android开发 开发者
Android经典面试题之Kotlin中Lambda表达式和匿名函数的区别
Lambda表达式和匿名函数都是Kotlin中强大的特性,帮助开发者编写简洁而高效的代码。理解它们的区别和适用场景,有助于选择最合适的方式来解决问题。希望本文的详细讲解和示例能够帮助你在Kotlin开发中更好地运用这些特性。
150 9
|
Android开发
Android经典实战之Textview文字设置不同颜色、下划线、加粗、超链接等效果
本文介绍了 `SpannableString` 在 Android 开发中的强大功能,包括如何在单个字符串中应用多种样式,如颜色、字体大小、风格等,并提供了详细代码示例,展示如何设置文本颜色、添加点击事件等,助你实现丰富文本效果。
884 4
|
安全 Android开发 Kotlin
Android经典面试题之Kotlin延迟初始化的by lazy和lateinit有什么区别?
**Kotlin中的`by lazy`和`lateinit`都是延迟初始化技术。`by lazy`用于只读属性,线程安全,首次访问时初始化;`lateinit`用于可变属性,需手动初始化,非线程安全。`by lazy`支持线程安全模式选择,而`lateinit`适用于构造函数后初始化。选择依赖于属性特性和使用场景。**
400 5
Android经典面试题之Kotlin延迟初始化的by lazy和lateinit有什么区别?
|
11月前
|
XML 存储 Java
浅谈Android的TextView控件
浅谈Android的TextView控件
109 0
|
SQL Java Unix
Android经典面试题之Java中获取时间戳的方式有哪些?有什么区别?
在Java中获取时间戳有多种方式,包括`System.currentTimeMillis()`(毫秒级,适用于日志和计时)、`System.nanoTime()`(纳秒级,高精度计时)、`Instant.now().toEpochMilli()`(毫秒级,ISO-8601标准)和`Instant.now().getEpochSecond()`(秒级)。`Timestamp.valueOf(LocalDateTime.now()).getTime()`适用于数据库操作。选择方法取决于精度、用途和时间起点的需求。
223 3

热门文章

最新文章