按钮btn = new Button(this);在这种情况下,“这”的用途是什么?

时间:2011-08-03 07:01:17

标签: android android-context

Button btn = new Button(this);
btn.setText(“This is a Button”);
btn.setLayoutParams(params);

如果我们不将“this”作为Button的上下文引用传递会发生什么...... ??

3 个答案:

答案 0 :(得分:1)

上下文是有关应用程序环境的全局信息的接口。这是一个抽象类,其实现由Android系统提供。它允许访问特定于应用程序的资源和类,以及应用程序级操作的上调,例如启动活动,广播和接收意图等。

Button也是应用程序的资源,所以如果你想创建按钮或任何小部件,那么你必须在小部件的构造函数中传递Context。

了解更多详情

http://developer.android.com/reference/android/content/Context.html

答案 1 :(得分:0)

我不知道android sdk,但通常传递给控件的构造函数的参数是父级或所有者(有时它不一样,例如在Borland的VCL父级中是一个控件,其中放置了子控件,但是所有者控制权,妥善处理资源。

如果你没有将'this'传递给构造函数会怎么样?要么Button不可见(因为没有任何东西会调用它的Draw或者用于在android上绘制控件的任何方法)或者你会抛出某种异常。

答案 2 :(得分:0)

如果你没有将上下文传递给Button构造函数,你将得到没有Button实例的wile没有空参数Button构造函数。 http://developer.android.com/reference/android/widget/Button.html#Button(android.content.Context