gpt4 book ai didi

java - 在创建新对象时是否应该始终使用 "this"作为上下文?

转载 作者:行者123 更新时间:2023-12-02 05:45:35 25 4
gpt4 key购买 nike

当创建一个新对象时,通常会这样:

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”。 (我认为这是错误的。)为什么我们应该使用“this”而不是任何其他上下文?

最佳答案

Here, should we always use "this" pointer (an instance of an Activity, normally) as the Context of TextView?

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

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

  • 您正在编写一个InputMethodService并且需要在onCreateInputView()中返回View

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

  • 等等

I am not adopting any resources

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

blog post by Dave Smith laalto 的评论是为正确的情况选择正确的上下文的一个很好的起点。

关于java - 在创建新对象时是否应该始终使用 "this"作为上下文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24099097/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com