制作新对象时,通常会:
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”而不是任何其他上下文?
答案 0 :(得分:2)
在这里,我们应该总是使用"这个"指针(通常是一个Activity的实例)作为TextView的上下文?
偶尔会有更好的选择,但通常情况明显:
您正在使用Presentation
将内容路由到外部显示器,因此您使用与Context
相关联的Display
您正在撰写InputMethodService
,需要在[{1}}
View
您正在编写onCreateInputView()
并需要调用DreamService
并选择使用Java代码创建小部件而不是使用布局
等
我没有采用任何资源
您的代码不是。您的应用是以框架类的形式访问您的活动(或应用)的样式/主题资源。
laalto评论中的blog post by Dave Smith是为正确的情况选择正确setContentView()
的绝佳起点。