onclick方法中引用外部其它元素需要final问题解决
2012-12-25 12:39
393 查看
造成原因:View.OnClickListener是一个内部匿名类。在内部匿名类中调用外部类元素需要final
解决办法:
REFERENCES:http://stackoverflow.com/questions/11757306/android-setonclicklistener-onclick-method-non-final-variable
http://zhidao.baidu.com/question/289905031.html
解决办法:
class FollowOnClickListener implements ImageView.OnClickListener { private ImageView iconImageView; private TextView nameTextView; public FollowOnClickListener(ImageView iconIV, TextView nameTV) { iconImageView = iconIV; nameTextView = nameTV; } public void onClick(View v) { if (!mFollowFile.exists()) { mHandler.sendEmptyMessage(12); return; } flag[location] = !flag[location]; if (flag[location]) { ((ImageView) v).setImageResource(R.drawable.unfollow_icon); // 取消关注 置灰 nameTextView.setTextColor(Color.parseColor(Constants.COLOR_LIGHT_GRAY)); iconImageView.setImageBitmap(BitmapUtils .toGrayscale(contact.getContactPhotoBitmap())); } else { ((ImageView) v).setImageResource(R.drawable.follow_icon); nameTextView.setTextColor(Color.parseColor(Constants.COLOR_BLACK)); iconImageView.setImageBitmap(contact .getContactPhotoBitmap()); } Message msg = new Message(); msg.what = 7; msg.arg1 = location; mHandler.sendMessage(msg); } } viewHolder.unFollowImageView .setOnClickListener(new FollowOnClickListener( viewHolder.iconImageView, viewHolder.nameFollowTextView));
REFERENCES:http://stackoverflow.com/questions/11757306/android-setonclicklistener-onclick-method-non-final-variable
http://zhidao.baidu.com/question/289905031.html
相关文章推荐
- PHP的foreach中使用引用时需要注意的一个问题和解决方法
- PHP的foreach中使用引用时需要注意的一个问题和解决方法
- 关于方法内定义的类引用局部变量需要将变量设置final的问题
- ant不是内部命令也不是外部命令问题的解决方法
- [ChneChen的随笔][管理之道]什么才是我们需要的解决问题的方法(从如何限制公司电脑使用U盘解决之道谈起)
- Asp.net页面中引用js文件无效的问题的解决方法
- 适配Android 7.0出现读取外部存储问题解决方法
- 解决ajax方法内部不能给方法外部变量赋值的问题
- 解决头文件相互包含问题的方法----超前引用- -
- truncate报ORA-02266错“唯一/主键被启用的外部关键字引用”解决方法
- JQuery 两种方法解决刚创建的元素遍历不到的问题
- Sublime Text 写sass的时候,每次都需要输入一个分号的问题的解决方法
- Cocos2d-X3.0bate_关于一些“无法解析的外部符号”的配置问题解决方法
- 非Activity类引用getResources()方法问题的解决方法
- VS2010引用App_Code下的类文件问题解决方法
- 解决ajax方法内部不能给外部变量赋值的问题
- Visual Studio 2010 .NET 4.0 WinForm 下无法引用 System.Web.dll 问题的解决方法
- 关于matlab需要重新激活问题的解决方法
- unbind方法在事件中的使用,解决同类或同名元素事件触发多次问题
- GridView中使用类似于Button btnToped = (Button)e.Row.FindControl("btnToped");提示“未将对象引用到实例”,也就是找不到控件的问题的解决方法