语义 - Android EditText类

时间:2013-11-07 14:36:23

标签: android android-edittext

我在一些基本的Android / Java开发上遇到了一些语义问题。如果我有以下代码(可行)从textfield收集用户输入:

final EditText userInput=(EditText) findViewById(R.id.txtUserInput);

userInput是对象还是变量?我理解它是一个实例化的对象,形成* EditText * 类。 (EditText)findViewById左侧做了什么。当我看到开放的parens,我认为铸造。任何人都可以提供一些简单的清晰度吗?

2 个答案:

答案 0 :(得分:1)

你说useridput是一个EditText对象是正确的,更具体地说,它是一个View的子类。从findViewbyId()方法返回的所有内容都将是一个View,然后您需要将其强制转换为正确的Object。 (EditText)将您从xml返回的View转换为EditText。这允许您从EditText访问特别是EditText类可用的方法。

因此,无论何时使用findViewById(),您还需要将View转换为它所代表的Object。

如果您需要进一步的帮助,请告诉我。

-Dejan

答案 1 :(得分:0)

userinput是一个对象。 findViewById(xxx)返回一个View对象,但在您的情况下,您知道它将返回一个EditText。因此可以使用(EditText)进行转换。并且您可以将它从View转换为EditText,因为EditText扩展了View。 将它强制转换为EditText后,您可以找到EditText公开的所有方法,而不只是查看View中公开的方法。