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