有人能解释上下文和视图之间的区别吗?我们什么时候使用上下文或视图?在大多数程序中,我发现上下文或视图被传递给某些方法,传递上下文或视图给方法的实际需要是什么?
发布于 2011-05-03 09:34:53
这是个奇怪的问题。视图描述ui的一个元素。它可以具有onClickListeners、属性等。但是每个视图都是在某种上下文中创建的,通常是活动的上下文。
上下文本身类似于代码在其中执行的环境。它可以访问ui(如果它是一个活动),它可以包含一些全局数据(应用程序上下文),并且可以访问资源(所有上下文)。此外,上下文允许您执行常见的android操作,如广播意图、启动活动和服务。
因此,当您想要使用特定的视图执行某些操作时,应该传递视图。当您需要访问资源、全局数据或ui上下文或启动其他android组件时,将传递上下文。
发布于 2020-06-13 17:29:20
我们需要了解View是如何构造的,什么是Context。
View有三个构造函数,所有这些构造函数都使用Context作为参数。
在Activity,中,如果view是以编程方式充气的,则view是通过使用LayoutInflater来充气的View。
LayoutInflater将Context作为参数,并在内部将其保存在类级别字段中。
LayoutInfater layoutinflater = LayoutInflater.from(this);其中"this“是Activity实例。
当inflater膨胀视图时,即:
inflater.inflate(R.id.some_view, parent, null),
它在内部将保存的context字段传递给View的构造函数。
View总是将Context作为参数,这是显而易见的,因为视图存在于某些Context中,即Activity。
要回答您的问题,当需要将context传递到Activity本身的方法时,您可以编写"this“。如果方法不在Activity中,并且需要传递Context,那么请记住,以Context作为参数的View将对象引用保存在类级别字段中。我们可以通过编写view.getContext()获得这个对象引用。
https://stackoverflow.com/questions/5867588
复制相似问题