EditText与TextView的区别

28

我读了API文档,发现TextViewEditText的父类,但我有一个简短而简单的问题:一般来说,当显示的文本可能会因为用户或应用程序更改时使用EditText。当显示的文本始终不变时,使用TextView。这个理解正确吗?


是的,没错。通常你甚至可以留空 EditText ,只提供一个提示,让用户填写整段文本。 - Dyrborg
1
当文本需要更改时,我使用TextView。如果期望用户输入,则使用EditView。有趣的是,所有内容都是视图,因此有时候我会在TextView上使用onClick事件作为按钮,以满足需求(需要在版本之间保持一致的小按钮,模拟组合或切换按钮)。我只需应用与按钮相同的渐变,它们就看起来一样了。 - Gravitoid
6个回答

16

EditText用于用户输入。

TextView用于显示文本,不可由用户编辑。 TextView可以在任何时候通过编程方式更新。


13
如果您以前做过任何Java项目,那么我认为TextviewEditText就像JLabelJtextField一样。如果您想要请求用户输入用户名,您将设置一个带有文本“username”(就像您为JLabel做同样的事情一样)的TextView。然后让用户出现一个文本框来输入用户名,该文本框是EditText。EditText是用户为程序提供输入的位置。
用户无法更改TextView中的东西,但程序可以(当用户输入正确的用户名后,您可以在程序代码中编写它,通过程序将文本设置为另一个TextView,表示“详细信息正确”,如果您想要这样做。用户无法使其出现)。用户可以输入任何用户名,但“用户名”文本字段或TextView将保持不变,如同普通的登录界面一样。

3
它们的名称相当自我解释。TextView是小部件,用于当您希望用户查看文本(例如标签等)时使用,而EditText则用于当您希望用户能够编辑文本时使用。无论哪种小部件中的文本都可以通过编程方式或使用android:text参数通过xml设置。文档documentation基本上总结了这一点:EditText是一个薄薄的覆盖在TextView之上的东西,它配置自己可编辑。

2

EditText是用于期望用户输入的情况。EditText提供了用户输入的行为(显示键盘、粘贴、位置指示器等)。

如果您的应用程序正在更改要显示的内容,您只需重置TextView的文本即可。但用户无法更改它。


1

EditText是用于输入文本的输入类型/字段。

TextView是用于显示文本的文本字段。


1
不正确,来自TextView文档:向用户显示文本,并可选择允许他们编辑。[链接]http://developer.android.com/reference/android/widget/TextView.html - silva96

0

TextView 就像 HTML 的 Label 标签,而 Edittext 则是输入类型。

简单来说,TextView 不能被用户更改。用户只能输入值。


2
这是一个糟糕的比较 - HTML标签更多 - 它总是属于表单元素(如果您单击标签,则会聚焦链接的元素)... - Alexander

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接