8

我对Android开发非常陌生,我正在尝试创建一个视图,到alloc那时可以initWithFrame ...在带有Cocoa Touch的Obj-C中轻松完成,但在Java中它使用该new ..()方法并且我坚持定义变量context,的参数LinearLayout()

我看到有些人this用作论点,即 new LinearLayout(this),但我不明白这个论点实际上做了什么,如果有人能给我一些关于将什么作为论点放入的指导,我将不胜感激。

LinearLayout layout = new LinearLayout(context);

应该context是什么?我应该如何定义它?它有什么作用?我应该赋予它什么价值?

4

2 回答 2

7

简单的方法是

只需如下声明变量,

private Context context;

和 onCreate() 方法,将其值分配如下,

public void onCreate(Bundle savedInstanceState) 
{
     super.onCreate(savedInstanceState);
     context = this;
     ...
}

您还可以通过以下另一种方式分配,

context = getApplicationContext();

您可以通过调用 getApplicationContext()、getContext()、getBaseContext() 或 this(在活动类中时)来获取上下文。

于 2013-05-07T07:36:20.273 回答
0

Context是一个抽象类,其实现由Android系统给出。它有助于使用应用程序资源、启动活动、广播等等。

它告诉编译器您要显示的当前属于哪个上下文活动或应用程序。大多数情况下,我们在初始化视图时给出活动的上下文。

LinearLayout layout = new LinearLayout(ActivityName.this);

或者您可以像这样在活动开始时初始化一个变量

private Context context;

//in activity class 
context=ActivityName.this;
于 2013-05-07T08:02:51.833 回答