Java / Android MainActivity语法令人困惑 - 需要一些澄清

时间:2017-04-03 04:38:05

标签: java android mobile syntax sdk

我是Java和Android开发的新手,所以我确定这个问题与我在Java实际工作方式上的知识差距有关,所以我希望有人可以提供帮助我填补了这个空白。我已经用Python,Javascript和其他OOP语言编写了几年的代码,但我发现Java / Android Dev打破了我已经了解和理解的一些惯例。

以下是MainActivity的一个非常基本的类定义,我相信它是标准Android教程的一部分

public class MainActivity extends AppCompatActivity {
private TextView textView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.test);
    textView = (TextView) findViewById(R.id.textView);

}

总的来说,这段代码对我来说非常有意义。定义一个名为MainActivity的类,它继承AppCompatActivity类并覆盖onCreate方法。保存实例状态,初始化布局,然后初始化textView。

我的困惑来自textView初始化。

textView = (TextView) findViewById(R.id.textView);

(TextView)和findViewById方法之间的空间让我感到困惑。为什么允许这样做?不应该更像是,

textView = (TextView).findViewById(R.id.textView);

我再次对Java完全陌生,仍在学习语法和语言结构,但这对我来说似乎有点奇怪。如何像这样调用方法?再次感谢您的提前。对于谷歌搜索,我一直在为这个问题写一些问题。

2 个答案:

答案 0 :(得分:0)

以编程方式定义句子是标准的android java编码

textView = (TextView) findViewById(R.id.textView);

要么你可以去

textView = (TextView) this.findViewById(R.id.textView);

有关详细信息,请参阅link

答案 1 :(得分:-2)

(TextView)仅转换findViewbyId找到的对象。 R.layout.test应包含ID为TextView的{​​{1}}。