如何在fragment中获取自定义view的控件id
2016-06-28 19:37
573 查看
今天在CSDN上下载了一个关于广告轮播的demo,上面的控件是自定义view的控件。当我把它放到项目中犯了难,因为他直接在activity中定义,
而我需要将其放入fragment中,所以报了一堆错误还有空指针,主要的问题及解决可见代码,需要注意的问题是,不能直接在oncreate方法中直接初始化控件,而是需要重写onStart()方法:
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中,所以报了一堆错误还有空指针,主要的问题及解决可见代码,需要注意的问题是,不能直接在oncreate方法中直接初始化控件,而是需要重写onStart()方法:
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()来表示,否则报一堆空指针。完毕
相关文章推荐
- ssh 无密码登录
- Spring AOP实现复杂的日志记录(自定义注解)
- 单机系统改造成集群部署的几个关注点
- [HIHO1223]不等式(离散化,枚举)
- 最大公约数和最小公倍数
- how to create igllib project independently(effective on 28/6/2016)
- 关于网页字体的应用
- Git学习日志
- 【chrome开发者工具介绍】评估网络性能
- 在O(1)时间复杂度删除链表节点
- Promise模式
- java 调用 .net webservice 示例
- 今天开通了“博客”
- 二叉树及其应用--二叉树的应用
- Linux的chattr与lsattr命令详解
- iovec结构体定义及使用
- 《Java虚拟机并发编程》学习笔记
- java 调用linux shell脚本
- Java带有限制的通配符
- 库(动态库/静态库)