哪里是“新”关键字? Android教程问题

时间:2010-03-07 01:04:40

标签: java android

在浏览Android教程的同时,我遇到了一些我不理解的东西。这可能非常简单,但我只是想知道为什么会这样。

在教程中:http://developer.android.com/resources/tutorials/views/hello-autocomplete.html

本教程似乎使用:

构建一个新的AutoCompleteTextView
AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.autocomplete_country);

我假设他们使用构造函数:

AutoCompleteTextView(Context context, AttributeSet attrs)

我认为他们的AttributeSet是“findViewById(R.id.autocomplete_country)”;而他们的上下文是(AutoCompleteTextView)。这是对的吗?

另外......新关键字,逗号以及为什么有一对括号?

我一直以为它必须是:

AutoCompleteTextView textview = new AutoCompleteTextView(context here, attrs here);

我哪里错了?!

2 个答案:

答案 0 :(得分:4)

findViewById返回与传入的参数对应的View,并且强制 View成为您正在使用的任何类型的对象

Button myButton = (Button) findViewById(R.id.button);
                     ^ casting   ^ returns the View of your button.

答案 1 :(得分:1)

引用的代码不是构造一个对象而是“获取”它。你正在做的是调用一个函数,该函数返回对已构造对象的引用。在这种情况下,可能在XML布局膨胀时创建了对象(通常在Activity的onCreate(Bundle)方法中)。代码很好。

findViewById(R.id.something)

返回一个View对象。然后必须将其包装以便将其作为任何View子类的实例进行访问。