如何在fragment中获取自定义view的控件id
2017-08-20 17:39
531 查看
今天在CSDN上下载了一个关于广告轮播的demo,上面的控件是自定义view的控件。当我把它放到项目中犯了难,因为他直接在activity中定义,而我需要将其放入fragment中,所以报了一堆错误还有空指针,主要的问题及解决可见代码,需要注意的问题是,不能直接在oncreate方法中直接初始化控件,而是需要重写onStart()方法:
其中比较主要的代码就是
adGallery = (AdGallery)getView().findViewById(R.id.adGallery);
这个是EC提示出来的,不是很理解为神马要这么转换(OnAdItemClickListener) mContext
adGallery.setAdOnItemClickListener((OnAdItemClickListener) mContext);
还有就是所有的上下文要用getActivity()来表示,否则报一堆空指针。完毕
public void onStart(){ super.onStart(); initData(); // makeInitData(); // realizeFunc1(); realizeFunc2(); } private void initData() { AdvertisementInfo ad1 = new AdvertisementInfo(getActivity(), R.drawable.banner2, "第1张广告"); AdvertisementInfo ad2 = new AdvertisementInfo(getActivity(), R.drawable.banner3, "第2张广告"); dataInfos = new AdvertisementInfo[] {ad1, ad2};} public void realizeFunc1(){ adGallery = (AdGallery)getView().findViewById(R.id.adGallery); adGallery.setAdOnItemClickListener((OnAdItemClickListener) mContext); adGallery.init(dataInfos, 2000, new OnGallerySwitchListener() { @ Override public void onGallerySwitch(int position) { System.out.println("onGallerySwitch position=>" + position); } }, true); } public void realizeFunc2(){ adContainer = (RelativeLayout) getView().findViewById(R.id.ad_container); adGalleryHelper = new AdGalleryHelper(getActivity(), dataInfos, 2000, true); adContainer.addView(adGalleryHelper.getLayout()); adGallery = adGalleryHelper.getAdGallery(); adGallery.setAdOnItemClickListener(this); }
其中比较主要的代码就是
adGallery = (AdGallery)getView().findViewById(R.id.adGallery);
这个是EC提示出来的,不是很理解为神马要这么转换(OnAdItemClickListener) mContext
adGallery.setAdOnItemClickListener((OnAdItemClickListener) mContext);
还有就是所有的上下文要用getActivity()来表示,否则报一堆空指针。完毕
相关文章推荐
- 如何在fragment中获取自定义view的控件id
- 安卓开发——如何获取NavigationView上的控件id
- Viewpager+fragment结构,如何获取fragment中的控件
- Android如何获取fragment里的webview控件资源
- Android中如何自定义我们想要的控件(以可以自动获取焦点的TextView为例)
- 如何实现类似水平WheelView的自定义滑动控件
- viewpager布局复用中FragmentPagerAdapter的坑,源码分析,控件id的一些思考
- 盘点自定义view里面容易混淆的获取控件属性的方法
- 如何获取消息来源的控件ID
- 如何获取控件id,包名,类名
- 如何自定义View视图控件案例开发(一)
- Fragment如何获取view并运用Adapter编辑view
- 如何对自定义的Dialog的View中控件进行监听
- Android自定义Dialog弹窗获取Dialog中的控件ID
- 安卓中如何一次性获取多个控件id(for循环进行获取)
- 关于:findViewById()返回null的问题和如何获取Fragment中的组件
- 自定义注解 获取控件id
- JS如何获取自定义组件的ID
- 如何用js在repeater中获取服务器控件的id
- 如何获取服务器控件的前端页面ID