2

嗨,我试图了解上下文的使用,尽管我不能。以下是使用上下文的程序。我的问题是“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;
   }
4

3 回答 3

0

在您的情况下,该字段context根本不是必需的。它宁可用作VcardActivity.this此处的快捷方式。您可以毫无问题地删除它并使用VcardActivity.this,甚至只this在您曾经使用过的地方使用context

于 2013-07-31T20:25:33.677 回答
0

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

TextView someText=new TextView(context);

我的这段代码显示,我将上下文传递到 TextView 的构造函数中以生成此对象。原因是,这个对象需要知道当前上下文的信息、状态,这就是为什么很多视图、类、助手都需要上下文的原因。

 context = VcardActivity.this;

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

于 2013-07-31T20:25:44.510 回答
0

您不需要ContextActivity. 您Context用于某些需要知道启动它们的对象/方法。Activity已经有一个Context,所以你不需要创建它。如果您需要在 a 中使用ContextActivity例如在创建时Intent可以使用ActivityName.this或 hereVcardActivity

有关使用哪种时间的很好解释,请参阅此 SO 答案Context

上下文文档

于 2013-07-31T20:25:51.190 回答