for循环下的内部类如何访问for语句的循环变量

问题描述

for(intt=0;t<num_btn.length;t++){num_btn[t].setOnClickListener(newOnClickListener(){@OverridepublicvoidonClick(Viewv){//TODOAuto-generatedmethodstub//这里内部类访问for语句的变量出现错误,定义final也会错误,因为i++;//mtv.append(num_btn[t].getText());}});}

这里加上final和不加final都好像不行啊

解决方案

解决方案二:
为什么一定要用匿名类你可以建个子类.用int做构造子参数。
解决方案三:
你把t作为全局变量或者静态变量来访问就可以了可以通过类名来访问了ClassName.tprivatestaticintt;for(intt=0;t<num_btn.length;t++){num_btn[t].setOnClickListener(newOnClickListener(){@OverridepublicvoidonClick(Viewv){//TODOAuto-generatedmethodstub//这里内部类访问for语句的变量出现错误,定义final也会错误,因为i++;//mtv.append(num_btn[ClaaaName.t].getText());}});}

解决方案四:
楼上不对吧那样按钮没有差异化.应该不是想要的结果
解决方案五:
在中间声明一个final,每次在匿名类调用之前,先更新中间的这个final变量publicclassA{publicvoidfoo(){for(inti=0;i<3;i++){finalintii=i;//放中间,每次给final赋值就可以了Threadt=newThread(newRunnable(){@Overridepublicvoidrun(){System.out.printf("%s'si=%d%n",Thread.currentThread().getName(),ii);}});t.start();}}publicstaticvoidmain(String[]args){newA().foo();}}

解决方案六:
你这个设计本身就有问题,首先不应该为每一个元素(你这里是按钮)创建一个监听器,相同类型或作用的元素应该共用一个监听器,其次响应事件时应由事件判断具体是哪一个元素触发的事件,而不应该用一个死引用。

时间: 2024-10-31 08:03:16

for循环下的内部类如何访问for语句的循环变量的相关文章

安装Myeclipse失败,提示tomcat下的startup拒绝访问

问题描述 安装Myeclipse失败,提示tomcat下的startup拒绝访问 在安装myeclipse时失败,查看了日志.发现是在安装路径下的tomcat startup拒绝访问, 为了查看原因,特地去我之前装好的tomcat下去运行startup文件,发现也不能运行, 并且无法获取startup的管理员权限.求大神解答. 解决方案 1.重新装一下tomcat 2.百度 3.等着答案

求程序,linux下两个线程访问同一个全局变量,得出不同结果!

问题描述 求程序,linux下两个线程访问同一个全局变量,得出不同结果! 10C 最简单的就行,比如全局变量n=10,第一个线程输出11,第二个线程输出12.就行. 解决方案 http://bbs.chinaunix.net/thread-3773950-1-1.html 解决方案二: 定义一个全局变量,然后再线程里自增一下打印输出 解决方案三: 不同的线程 访问全局变量对变量进行不同的操作之后使用 解决方案四: 不同的线程在run()中使用的时候处理下然后再使用即可!

虎嗅网在云服务器提供商阿里云的协助下,恢复正常访问

摘要: 新锐科技媒体虎嗅网遭受网络攻击的事件,引起业内关注.2月27日晚,虎嗅网中断访问,虎嗅网新浪官方微博随即发表声明,表示网站受到恶意攻击,随后虎嗅网在云服务器提供商阿里 新锐科技媒体虎嗅网遭受网络攻击的事件,引起业内关注.2月27日晚,虎嗅网中断访问,虎嗅网新浪官方微博随即发表声明,表示网站受到恶意攻击,随后虎嗅网在云服务器提供商阿里云的协助下,恢复正常访问. 据虎嗅网公告,27日晚18点虎嗅网遭受攻击,攻击者使用ACK Flood.ICMP flood.UDP flood.CC 四种攻击

centos-Linux 下 apache无权限访问

问题描述 Linux 下 apache无权限访问 Forbidden You don't have permission to access /b.html on this server.Apache/2.2.15 (CentOS) Server at 192.168.1.104 Port 80 解决方案 用户权限不对吧.还root呢 解决方案二: chmod 修改文件权限

tomcat-linux下运行jsp站点访问另一台服务器oracle数据库错误。

问题描述 linux下运行jsp站点访问另一台服务器oracle数据库错误. 本人是java菜鸟.我在本机上开发了一个jsp+oracle站点.本机环境:winXP+tomcat5.5+JDK1.5+Oracle 11g本地运行没有任何问题.但是部署到服务器上就报错. 两台服务器,一台存放应用,一台存放数据库.应用服务器环境是linux系统+JDK1.5+tomcat5.5数据库服务器是oracle 10g 然后我进行了如下的测试:1.启动应用服务器上的tomcat,没有错误.2.我写了个测试的

微信自定义分享-tomcat下部署一手机访问的项目微信分享朋友圈时不能显示自定义的图标

问题描述 tomcat下部署一手机访问的项目微信分享朋友圈时不能显示自定义的图标 如题,html中可以写微信分享的代码,但是部署在tomcat下自定义的无效

【转载】.NET 2.0下简单的FTP访问程序

.NET 2.0下简单的FTP访问程序 [简介] 也许大家也不想总依赖着第三方FTP软件,值得高兴的是,本文将给你开发出一套免费的来.尽管,本文中的代码没有设计成可重用性很高的库,不过确实是一个简单的可以重复使用部分代码的程序.本文最大的目的是演示如何在.NET 2.0中使用C#设计FTP访问程序. [代码使用] 添加以下命名空间: Code: using System.Net; using System.IO; 下面的步骤可以看成,使用FtpWebRequest对象发送FTP请求的一般步骤:

为什么局部内部类只能访问外围方法的常量?

问题描述 为什么局部内部类只能访问外围方法的常量? 解决方案 解决方案二:内部类其实就是另外一个类,一个类访问另外一个的方法或变量的时候必须要实例化,除非它是静态的.解决方案三:路过,学习一下解决方案四:因为这样可能会访问到没有初始化的变量

[Python学习] 专题二.条件语句和循环语句的基础知识

        前面讲述了"专题一.函数的基础知识",而这篇文章讲述的Python的条件语句和循环语句的基础知识.主要内容包括:         1.条件语句:包括单分支.双分支和多分支语句,if-elif-else         2.循环语句:while的使用及简单网络刷博器爬虫         3.循环语句:for的使用及遍历列表.元组.文件和字符串 前言: 语句块         在讲诉条件语句.循环语句和其他语句之前,先来补充语句块知识.(前面讲函数时已经用到过)