问题描述
因此,我有两个选择来获取context
。请参见实用程序类中的以下两种方法(为清晰起见,进行了清理)。
public static void oncopyClicked(Context context,ImageView copy){
copy.setVisibility(View.GONE);
Intent intent = new Intent(context,NextActivity.class);
context.startActivity(intent);
}
public static void oncopyClicked(ImageView copy){
Context context = copy.getContext();
copy.setVisibility(View.GONE);
Intent intent = new Intent(context,NextActivity.class);
context.startActivity(intent);
}
我可以传递上下文,也可以直接从视图中获取上下文。我猜我更喜欢第二个参数,因为它要传递的参数要少一个,但是我想知道getContext()
调用是否昂贵。我不是在尝试微管理我的代码,而是在尝试遵循最佳实践(如果存在这种情况)。
解决方法
您可以使用第二个选项。
在getContext()
上致电View
并不昂贵。创建context
时,View
引用将被保存,而getContext()
方法将返回该引用。
检查View
的{{3}}和constructor source code。