我试图部署一个小型 Android 应用程序,其中,我试图向用户显示“Hello World”。
我在这里应用的代码行是(有点来自互联网资源):
TextView text = new TextView(this);
text.setText("Hello World, Here");
setContentView(text);
我不明白的是:为什么这里需要 this
关键字?我不能只创建一个普通的 Vanilla TextView
对象来设置这样的文本:
TextView text = new TextView();
text.setText("Hello World, Here");
还有,setContentView
方法的目的是什么?它是否像 java 的 System.out.println
一样工作?有点困惑,任何帮助将不胜感激。谢谢。
最佳答案
TextView text = new TextView(this);
Why is this key word is required here ?
这是指当前对象,在您的情况下是 Activity,因为您可能正在从 Activity 类的 onCreate 执行此代码。 并且 TextView 类的构造函数至少需要一个上下文作为参数。 Activity 是 Context 的子类,因此传递“this”就可以了。 这就是为什么你不能做这样的事情。
TextView text = new TextView();
现在回答我们为什么要这样做。这样想。 这是一个需要将自身附加到某些上下文的 View 。这样它也可以消费 系统中的许多上下文相关权限。
将上下文视为应用程序中独立存在的包装组件,它将绑定(bind)其中的许多内容并具有正确定义的生命周期。
Activity 是一种上下文。 Activity 是 android 应用程序中的一个可见屏幕。 实际上 Activity 远不止于此。但只是为了在初级水平上理解这一点。
setContentView 说明了一切。 Activity 将在其所属的可见屏幕中显示的内容。
因此,您声明了一个 TextView 并将其设置为要显示的 Activity 的内容。 简单。
希望它有助于更好地理解它。 你最好跟着 http://developer.android.com
干杯
关于android - 'this' 和 'setContentView' 在这里是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16690467/