我试图部署一个小的Android应用程序,在其中,我试图向用户显示"Hello World".
我在这里应用的代码行(有点来自互联网资源):
TextView text = new TextView(this);
text.setText("Hello World, Here");
setContentView(text);
Run Code Online (Sandbox Code Playgroud)
我不明白的是:为什么this这里需要关键词?我不能只创建一个普通的vanilla TextView对象来设置文本,如下所示:
TextView text = new TextView();
text.setText("Hello World, Here");
Run Code Online (Sandbox Code Playgroud)
而且,这个方法的目的是setContentView什么?它是否像System.out.printlnjava 一样工作?有点困惑,任何帮助将不胜感激.谢谢 .
TextView text = new TextView(this);
Run Code Online (Sandbox Code Playgroud)
为什么这里需要这个关键词?
这指的是当前对象,在您的情况下是Activity,因为您可能正在从活动类的onCreate执行此代码.而TextView类的构造函数至少需要一个上下文作为参数.Activity是Context的子类,所以传递"this"就可以了.这就是为什么你不能做这样的事情.
TextView text = new TextView();
Run Code Online (Sandbox Code Playgroud)
现在回答我们为什么这样做.以这种方式思考.这是一个需要将自己附加到某些上下文的视图.这样它也可以在系统中消耗许多与上下文相关的权限.
将上下文视为应用程序中单独存在的包装组件,它将绑定许多内容并具有正确定义的生命周期.
活动是一种上下文.Activity是Android应用程序中的一个可见屏幕.实际上活动远不止于此.但只是在小学阶段理解这一点.
setContentView说明了这一切.活动将在其所属的可见屏幕中显示的内容.
因此,您声明了TextView并将其设置为要显示的活动的内容.简单.
希望它有助于更好地理解它.你应该更好地关注 http://developer.android.com
干杯
| 归档时间: |
|
| 查看次数: |
13703 次 |
| 最近记录: |