Application中的 Context 和 Activity 中的Context区别

Application中的 Context 和 Activity 中的Context区别,第1张

Context在我们开发中经常用到,不管是Framework提供给我们的四大组件,还是应用级别的Application,还是负责表现层的View相关类,甚至连我们很多时候创建的实体类都会需要持有一个Context的引用。那么Context到底是什么呢?

建议看这个: >

Fragment获取它所在的Activity:调用Fragment的getActivity()方法即可返回它所在的Activity

Activity获取它包含的Fragment:调用Activity关联的FragmentManager的findFragmentById(int id)或findFragmentByTag(String tag)方法即可获取指定的Fragment

在界面布局文件中使用<fragment>元素添加Fragment时,可以为<fragment>元素指定android:id或android:tag属性,这两个属性都可用于标识该Fragment,接下来可以通过findFragmentById(int id)或者findFragmentByTag(String tag)来获取该Fragment

代码是错误的,既然是fragment中的按钮那就并不是在activity中设置按钮监听getActivity()只是用来获取到一个Context上下文的,因为startActivity是context的方法,而Activity又继承于Context正确代码如下fragmentclass MyFragment extends Fragment{@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {View view = inflaterinflate(Rlayoutfrag_pre, mull);//在fragment视图中的按钮Button btn = (Button)viewfindViewById(Ridbutton);btnsetOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) { //在这里使用getActivityIntent intent = new Intent(getActivity(),Pre1Activityclass);startActivity(intent);}});return superonCreateView(inflater, container, savedInstanceState);}}

APP首页用的是Fragment,然后用开源库Banner来实现轮播图,加载用的是Glide,然而一张都出不来。

使用Glide的依赖为

Glide40以上需要自定义一个类

build之后会生成一个GlideApp这样就可以使用了。

如果你添加的依赖为

build的时候会报错,此时你需要在gradle的defaultconfig添加下面这句

这样就可以build成功。

在使用banner的时候需要设置加载器:

其中ImageLoader是banner中封装好的,我们只需要继承一下即可。

在这里需要注意的是glide中的上下文如果使用的是displayImage中的context,也可能导致加载不出来。从网上资料查阅得,Glide获取容器生命周期的机制与其他开源框架产生了冲突,故而导致加载失效

解决的方法有两种:

1、上下文需要填

2、换用其他的第三方加载

在这里使用的是ImageLoader。

依赖为:

在Application中初始化

然后再banner中设置

还有一种是90的系统导致显示不出来,因此需要在

设置android:usesCleartextTraffic="true"即可

以上就是关于Application中的 Context 和 Activity 中的Context区别全部的内容,包括:Application中的 Context 和 Activity 中的Context区别、GLIDE原理、如何在activity中获取当前fragment等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/9569684.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)