在android中引用类的Context

时间:2013-07-31 20:23:27

标签: java android

您好我正试图理解上下文的使用,虽然我不能。以下是使用上下文的程序。我的问题是“context = class.this”的意义是什么?

class public VcardActivity extends Activity
   {
   String Vcard = "vcard";
   Context context;
   }
   public void onCreate ( Bundle bn )
   { 
    super.onCreate(bn);
    setContentView(R.layout.main);
    context = VcardActivity.this;
   }

3 个答案:

答案 0 :(得分:0)

在您的情况下,根本不需要字段context。它更像是VcardActivity.this的快捷方式。您可以毫无问题地删除它,并使用VcardActivity.this甚至只使用this context。{/ p>

答案 1 :(得分:0)

您当前的代码未显示上下文的使用。它表明Activity是一个上下文。

TextView someText=new TextView(context);

我的这段代码显示,我正在将一个上下文传递给TextView的构造函数,以便创建这个对象。原因是,这个对象需要知道当前上下文的信息,状态,这就是许多视图,类,助手需要上下文的原因。

 context = VcardActivity.this;

在您的代码中,您将活动对象分配给Context上下文。这是有效的,因为Activity类继承自Context,许多类需要Context来创建它。

答案 2 :(得分:0)

您无需在Context内创建单独的Activity变量。对于需要知道启动它们的某些对象/方法,您使用ContextActivity已经有Context,因此您无需创建它。如果您需要在Context中使用Activity,请在创建Intent时说明,您可以使用ActivityName.thisVcardActivity

See this SO answer有关使用哪种Context时的良好解释。

Context Docs