应该"这个"在创建新对象时总是用作Context?

时间:2014-06-07 16:09:00

标签: java android

制作新对象时,通常会:

TextView textView = new TextView(this)

在这里,我们是否应该始终使用“this”指针(通常是Activity的一个实例)作为TextView的Context?对我来说,似乎任何Context都可以在许多情况下工作,例如以下方法。

  TextView textView = new TextView(this);
        textView.setTextSize(textSize);
        textView.setTextColor(textColor);
        textView.setText(text);
        tableRow.addView(textView);

我的断言是,因为我没有采用任何资源,任何上下文都可以取代“这个”。 (我认为这是错误的。)为什么我们应该使用“this”而不是任何其他上下文?

1 个答案:

答案 0 :(得分:2)

  

在这里,我们应该总是使用"这个"指针(通常是一个Activity的实例)作为TextView的上下文?

偶尔会有更好的选择,但通常情况明显:

  • 您正在使用Presentation将内容路由到外部显示器,因此您使用与Context相关联的Display

  • 您正在撰写InputMethodService,需要在[{1}}

  • 中返回View
  • 您正在编写onCreateInputView()并需要调用DreamService并选择使用Java代码创建小部件而不是使用布局

  

我没有采用任何资源

您的代码不是。您的应用是以框架类的形式访问您的活动(或应用)的样式/主题资源。

laalto评论中的blog post by Dave Smith是为正确的情况选择正确setContentView()的绝佳起点。