向监听类传递参数
来源:互联网 发布:网络迷情金紫阳小说TXT 编辑:程序博客网 时间:2024/06/05 20:30
我们给按钮设置监听器时,我们有可能希望给监听函数一个参数,或让该监听函数能够操作外面的变量,如下是一种愿望:
@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { fragmentView = inflater.inflate(R.layout. fragment_playlist, container, false ); for(int i=0;i<LocalConst.plCount;i++){plChooser[i] = (Button)fragmentView.findViewById(tab2RadioId(i));plChooser[i].setOnClickListener(new View.OnClickListener(){@Overridepublic void onClick(View v) {// TODO Auto-generated method stub((DirPlayerActivity)getActivity()).currentPlTab = i;//这个i访问不到}});} return fragmentView ;}
但是遗憾的是,new出来的这个匿名内部类不能访问外面的参数i。
可以考虑先封装一个实现View.OnClickListener接口的类,然后再把这个类的对象当成监听器给按钮,利用这个类的构造函数来接收参数,如下:
@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { fragmentView = inflater.inflate(R.layout. fragment_playlist, container, false ); for (int i=0;i<LocalConst. plCount;i++){ plChooser [i] = (Button)fragmentView .findViewById(tab2RadioId(i)); plChooser [i].setOnClickListener( new PlChooser(i)); } return fragmentView ;}class PlChooser implements View.OnClickListener{ int choosed ; PlChooser( int i){//在这里接收i choosed = i; } @Override public void onClick(View v) { ((DirPlayerActivity)getActivity()). currentPlTab = choosed ; }}
0 0
- 向监听类传递参数
- 向基类构造函数传递参数
- 向基类构造函数传递参数
- 如何向基类传递参数
- 向sqlplus传递参数
- 向脚本传递参数
- 向脚本传递参数
- 向报表传递参数
- 向Fragment传递参数
- 向脚本传递参数
- 向awk传递参数
- 向RDLC传递参数
- as3 监听函数传递参数
- 向水晶报表传递参数
- 向水晶报表传递参数
- 如何向线程传递参数
- 如何向线程传递参数
- 向silverlight传递自定义参数
- XFD5410开发板
- 关于字符串和格式化输入输出的学习
- 【Python】KeyError解决方法
- ssh无密钥登陆
- 区分挂载的分区是否是移动硬盘并返回最大剩余空间的本地磁盘
- 向监听类传递参数
- AsyncTask的缺陷
- MyBatis-jdbcType
- 高性能服务器架构
- 模板方法
- 进程间的通信(互斥锁、条件变量、读写锁、文件锁、信号灯)
- ORACLE跨版本数据库备份
- 【Android自动化打包】02. javac的用法
- Eclipse快捷键 10个最有用的快捷键